关于 compile
面向 AgentOps 的知识编译技能,可将 `.agents/` 中的材料整理为相互链接的 Markdown wiki。它支持挖掘与综合内容、检查 wiki、清理材料,并可配置 LLM 后端;增量和分批编译适用于较大的资料集。
主要功能
- 01挖掘并综合学习材料
- 02编译相互链接的 Markdown wiki 条目
- 03检查矛盾、孤立条目和内容缺口
- 04清理过时及重复材料
- 05选择 LLM 后端并分批处理文件
适用场景
- 01将 `.agents/` 学习材料整理为 wiki
- 02检查编译条目是否缺少链接
- 03清理过时或重复的知识材料
- 04对大型资料集安排定时编译
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ boshu2/ agentops --skill compile安装后在 Claude Code 中输入/compile确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/compile.featureconfidence-scoring.mdflywheel-diagnostics.mdknowledge-synthesis-patterns.mdphases.mdscripts/compile.shvalidate.shscripts/tests/test-fence-stripping.sh详细介绍
Compile — 知识编译器
循环位置:运行循环的第 7 步(捕获 + 累积)——将晋升的
.agents/学习成果编译到互相关联的 wiki 中(复合子步骤)。
读取原始 .agents/ 产物,并将其编译成结构化、互相关联的
Markdown wiki。灵感来自 Karpathy 的大模型知识库。
此技能的功能
知识飞轮会通过 /post-mortem、
/curate --mode=forge 响应式地捕获信号。/compile 通过以下步骤闭合循环:
- 挖掘 git 和
.agents/中尚未提取的信号(现有) - 扩充学习成果,包括验证、综合和差距检测(现有)
- 编译原始产物,生成互相关联的 wiki 文章(新增——核心价值)
- 检查已编译的 wiki,查找矛盾、孤立内容和缺口(新增)
- 整理过时和重复的产物(现有)
**无需向量数据库。**在个人规模(约 100–400 篇文章)下,已编译的 wiki 可放入上下文窗口。wiki 本身就是检索层。
输出:.agents/compiled/——百科全书式的 Markdown,包含 [[backlinks]]、
index.md 目录和 log.md 时间顺序记录。
可插拔计算后端
设置 AGENTOPS_COMPILE_RUNTIME 以选择大模型后端:
| 值 | 后端 | 说明 |
|---|---|---|
codex-cli | 本地 codex 二进制文件 | 无需配置。沿用你的 Codex CLI 身份验证,无需 API 密钥。如果 PATH 中存在 codex 且未设置其他选项,则会自动选用。 |
ollama | Ollama API | 默认模型:gemma3:27b。设置 OLLAMA_HOST 以使用远程服务(例如,ssh -L 11435:localhost:11435 bushido-windows)。 |
claude | Claude API(HTTP) | 使用 ANTHROPIC_API_KEY。模型:claude-sonnet-4-20250514。 |
openai | OpenAI 兼容接口 | 使用 OPENAI_API_KEY + OPENAI_BASE_URL。 |
| (未设置) | Claude Code 会话 | 通过当前会话的大模型直接进行编译。 |
未设置 AGENTOPS_COMPILE_RUNTIME 时,ao compile 会先尝试
自动检测本地 codex 二进制文件(codex-cli 运行时)。如果也不存在,
无头编译会立即失败,并明确提示要设置的环境变量。
交互式 /compile 调用仍会内联运行编译提示词——读取此 SKILL.md 的 Agent 本身就是编译器。
运行时偏好(覆盖自动检测)
若要永久指定非自动检测的运行时(例如,虽然安装了 claude,
但出于隐私考虑更偏好 Ollama),请在
~/.agentops/config.yaml 中设置:
compile:
preferred_runtime: ollama
优先级(从高到低):--runtime 标志、AGENTOPS_COMPILE_RUNTIME
环境变量、compile.preferred_runtime 配置、codex 二进制文件自动检测、
空值(错误)。
大型语料库分批处理
ao compile 会将 --batch-size 传给无头编译器(每个大模型提示词默认处理
25 个已更改文件)。对包含 2000 多个文件的语料库运行全新编译时,
会自动拆分成多个批次,而不是一次发送一个巨大的提示词。
标志:
--batch-size N——每批文件数(默认 25)--max-batches N——限制每次调用的批次数;剩余文件将在 下次运行时处理(默认 0 = 不限)
执行步骤
各阶段的详细说明见 references/phases.md。 模式摘要:
/compile— 完整周期:挖掘 → 扩展 → 编译 → 检查 → 整理/compile --compile-only— 跳过挖掘和扩展,仅编译 + 检查/compile --lint-only— 仅检查现有的已编译知识库/compile --defrag-only— 仅运行整理/清理/compile --mine-only— 仅运行挖掘 + 扩展(旧版行为)
步骤如下:
- 挖掘 — 从 git +
.agents/research/+ 复杂度热点中提取信号 - 扩展 — 由大模型驱动验证、综合、缺口检测;调整学习置信度
- 编译 — 清点 → 提取主题 → 生成带有
[[backlinks]]的 Wiki 文章 - 检查 — 检查矛盾、孤立项、缺失的交叉引用、过时声明
- 整理 — 清理过时内容、合并近似重复项、清理来回波动的目标、执行规范化扫描
- 报告 — 写入
.agents/compile/YYYY-MM-DD-report.md
完整的各阶段流程、置信度评分表、自动晋升规则、文章 / 索引 / 日志 / 检查报告 / 编译报告的模板结构,以及规范化缺陷扫描,请参阅 references/phases.md。
调度 / 自动触发
轻量级整理(清理 + 合并重复项,不进行挖掘或编译)会在会话结束时通过
compile-session-defrag.sh 钩子自动运行。无需手动调用 /compile,即可保持知识库整洁。该钩子:
- 在
session-end-maintenance.sh之后的每个SessionEnd事件中触发 - 如果
aoCLI 不可用,则静默跳过 - 只运行
ao defrag --prune --dedup(不进行编译或挖掘) - 超时时间为 20 秒,避免阻塞会话结束流程
如需完整编译,请手动调用 /compile,或使用主机 OS 调度无头编译器脚本:
# Example: external cron entry for nightly compilation on bushido
0 3 * * * cd /path/to/repo && AGENTOPS_COMPILE_RUNTIME=ollama bash skills/compile/scripts/compile.sh --force
AgentOps 通过 ao compile 提供此工作流。如需无人值守编译,请使用主机调度器(launchd、cron、systemd、CI 等)调用 ao compile --force --runtime ollama,或直接调用较底层的 bash skills/compile/scripts/compile.sh。
如需更广泛的会话外持续积累循环,请在会话外的基础设施(NTM + MCP + managed-agents)上运行,而不是在 /compile 中另行创建一个并行的 Dream 封装。
交互模式
以下模式描述交互式 /compile 技能的行为:
| 模式 | 描述 |
|---|---|
--compile-only | 跳过挖掘和扩展,仅编译 + 检查 |
--lint-only | 仅检查现有的已编译知识库 |
--defrag-only | 仅运行整理/清理 |
--mine-only | 仅运行挖掘 + 扩展(旧版行为) |
--full | 完整周期:挖掘 → 扩展 → 编译 → 检查 → 整理 |
--since 26h | 挖掘阶段的时间范围 |
--incremental | 跳过未更改的源文件(基于哈希) |
--force | 无论哈希如何,都重新编译所有文章 |
无头脚本标志
对于无人值守运行,bash skills/compile/scripts/compile.sh 支持:
| 标志 | 默认值 | 描述 |
|---|---|---|
--sources <dir> | .agents | 学习、模式、研究、回顾、forge 和知识内容的源根目录 |
--output <dir> | .agents/compiled | 已编译 Wiki 输出的目标目录 |
--incremental | 开启 | 跳过未更改的源文件(基于哈希) |
--force | 关闭 | 无论哈希如何,都重新编译所有文章 |
--lint-only | 关闭 | 仅对现有的已编译知识库运行检查 |
--full | 开启 | 为保持一致而接受;默认行为已运行完整的无头编译流程 |
示例
用户说: /compile — 完整的挖掘 → 扩展 → 编译 → 检查 → 整理周期。
用户说: /compile --compile-only — 仅将原始资料编译到 Wiki 中。
用户说: /compile --lint-only — 扫描现有 Wiki,检查健康状况。
用户说: /compile --since 7d — 使用更长的时间窗口(7 天)进行挖掘。
外部定时执行: 每晚通过 Ollama 在 bushido GPU 上进行编译。
进化前预热: 在运行 /evolve 前先运行 /compile,以获取最新且经过验证的知识库。
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
找不到 ao mine | ao CLI 不在 PATH 中 | 使用步骤 1 中的手动备用方案 |
| 没有孤立的研究内容 | 所有研究内容都已有引用 | 跳过 2b,继续综合 |
| 挖掘输出为空 | 最近没有活动 | 扩大 --since 时间窗口 |
| 振荡扫描结果为空 | 没有振荡目标 | 状态良好——无需操作 |
| Ollama 连接被拒绝 | 隧道未运行或主机错误 | 运行 ssh -L 11435:localhost:11435 bushido-windows 或检查 OLLAMA_HOST |
| 编译太慢 | 小模型处理大型语料库 | 使用 --incremental 或切换到更大的模型 |
| 哈希文件缺失 | 首次编译 | 正常情况——将运行完整编译,并在之后保存哈希值 |
参考文档
-
references/compile.feature — 可执行规范:挖掘→扩展→检查→整理重建、仅检查不自动修复、增量分批处理、进化预热(soc-qk4b)
-
references/phases.md — 各阶段的完整流程(挖掘 → 扩展 → 编译 → 检查 → 整理 → 报告)