Built 26/04/15 10:53commit de0ee65
自动巡检
中文 | English
全局配置
自动巡检使用全局配置:
text
~/.llm-wiki/config.json现在推荐把共享默认值和具名任务拆开:
json
{
"root": "/Users/bytedance/csh/llm-wiki",
"scheduler": {
"enabled": true,
"codex_path": "/Users/bytedance/.nvm/versions/node/v23.11.1/bin/codex",
"log_dir": "/Users/bytedance/.llm-wiki/logs",
"max_runtime_minutes": 20
},
"schedulers": {
"content_patrol": {
"interval_minutes": 30,
"label": "com.bytedance.llmwiki.maintenance.content",
"prompt": "$llm-wiki 对这个 vault 做一次内容巡检..."
},
"taxonomy_patrol": {
"interval_minutes": 1440,
"label": "com.bytedance.llmwiki.maintenance.taxonomy",
"max_runtime_minutes": 45,
"prompt": "$llm-wiki 对这个 vault 做一次目录结构巡检..."
}
}
}说明:
scheduler是共享默认配置块。schedulers是多个具名任务,每个任务会继承scheduler,再覆盖自己的差异字段。- 旧的单
scheduler写法仍然兼容,但新配置更推荐用具名任务。
推荐拆分
建议拆成两个定时任务:
content_patrol每 30 分钟一轮,专注于新增或变更raw/内容的整合、翻译漂移、index/log 漂移,以及明显缺失的 cross-links。taxonomy_patrol每天一轮,专门按 llm-wiki 的 taxonomy 规则检查整个项目的目录结构,只在结构确实开始漂移时才做重组。
这样可以让高频巡检保持保守,把更重的目录结构整理留到低频任务中处理。
调整巡检间隔
改这里:
text
~/.llm-wiki/config.json修改对应任务:
json
"schedulers": {
"content_patrol": {
"interval_minutes": 30
},
"taxonomy_patrol": {
"interval_minutes": 1440
}
}例子:
30:每 30 分钟一轮60:每小时一轮120:每 2 小时一轮1440:每天一轮
改完任意调度字段之后,都要重装 launch agents:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py install这是必须的,因为 launchd 会把每个 plist 的 StartInterval 固化下来,不会自动热更新。
常用命令
查看所有任务状态:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py status查看单个任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py status taxonomy_patrol立即跑所有启用任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py run-now立即跑单个任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py run-now content_patrol安装或重装所有启用任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py install安装或重装单个任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py install taxonomy_patrol卸载所有已配置任务:
bash
python3 /Users/bytedance/csh/llm-wiki/.codex/skills/llm-wiki/scripts/manage_launch_agent.py uninstall每个任务检查什么
content_patrol 应该专注于:
- 新增或变更的 raw 内容
- 需要先做 OCR 再综合的截图密集型来源
wiki/source/raw链接失效- raw 内部因路径变更导致的导航链接失效
- 缺失或 stale 的翻译 sibling
- raw markdown 渲染隐患,例如损坏的链接、
blob:临时嵌入、未闭合 HTML 标签,或暴露在代码语境外的尖括号占位符 index.md、index.zh.md、log.md漂移- 明显缺失的 cross-links
如果这些问题明显只是语法层损伤,content_patrol 应该在同一轮里直接修复,而不是只做报告。
taxonomy_patrol 应该专注于:
raw/是否已经平铺到难以导航- 某个 raw/source family 是否已经清晰到值得单独收成子树
- wiki 中是否已经出现清晰的主题家族、来源家族或导航切片,适合集中归类
- 页面或 raw 移动后的全局链接修复
- 目录移动后的双语 sibling 修复
- taxonomy 变更引起的 overview、index 和 source-page 导航漂移
真正的主触发信号应该是 family 边界是否清晰、目录是否好导航,而不是机械地等目录计数过线。taxonomy 任务仍然应保持保守,不做没有必要的重排。
防重入
防重入现在按任务分开。
如果上一轮 content_patrol 还在跑,下一轮 content_patrol 会跳过;但只要 taxonomy_patrol 自己的锁是空闲的,它仍然可以运行。每个任务都有自己独立的:
- lock 文件
- 结构化 state 文件
- 最终摘要文件
如果某个任务超时或失败:
status会明确显示该任务的状态- 同一个任务的下一轮会收到上一次的摘要和日志摘录作为 continuation context
- 下一轮可以沿着未完成工作继续,而不是盲目从零开始
自动巡检日志
日志根目录仍然在:
text
~/.llm-wiki/logs/单任务兼容模式保持旧布局:
text
~/.llm-wiki/logs/2026-04-08/
maintenance-20260408-150012.log
maintenance-20260408-150012-last-message.txt具名任务模式会按任务分目录:
text
~/.llm-wiki/logs/content-patrol/2026-04-09/
maintenance-content-patrol-20260409-132143.log
maintenance-content-patrol-20260409-132143-last-message.txt
~/.llm-wiki/logs/taxonomy-patrol/2026-04-09/
maintenance-taxonomy-patrol-20260409-090001.log
maintenance-taxonomy-patrol-20260409-090001-last-message.txtstate 文件也会按任务拆开,例如:
text
~/.llm-wiki/content-patrol-state.json
~/.llm-wiki/taxonomy-patrol-state.json这样可以直接看出是哪条维护链路运行了、做了什么,以及到底是哪一条链路需要关注。