oh-my-openagent 文档漂移修正实战:F2 审计修复清单与模型匹配链的源码级校准
2026/9/19 8:09:37 网站建设 项目流程

oh-my-openagent 文档漂移修正实战:F2 审计修复清单与模型匹配链的源码级校准

【免费下载链接】oh-my-openagentOmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

在 oh-my-openagent 仓库中,docs文档与packages源码之间的一致性由一套名为docs-drift-audit的定期审计机制保障:审计发现差异后,会为每个修复者(fixer)生成一份带精确行号与源码引用地址的修复指令。本文围绕.omo/evidence/20260809-docs-drift-audit/fix-instructions-f2.md展开,逐条解读 F2 修复者负责的 5 份文档、30 项漂移修正:从模型-代理匹配链的逐 rung 校准、已知问题状态的历史化归档,到 Codex 遥测安装命令、lazycodex-ainpm 发布门槛与整体发布流程的文档同步。读完本文,你将掌握如何以源码为锚点执行文档漂移审计、如何读懂内置代理与类别的模型回退链,以及一份专业修复指令所要求的全局规则与交付物形态。

修复任务的边界:worktree、拥有文件与全局规则

fix-instructions-f2.md首先用四条约束划定了修复者的工作边界,这是整个审计流程的纪律基础:

约束内容
工作目录只在指定的 worktree 中编辑,禁止触碰其他分支
拥有文件docs/guide/agent-model-matching.mddocs/reference/known-issues.mddocs/reference/codex-telemetry.mddocs/reference/lazycodex-npm-reservation.mddocs/reference/release-process.md五份文档
全局规则每次编辑前重新核对引用(re-verify each citation);发现不匹配则跳过并记入报告;最小编辑;仅 ASCII;禁用 em dash;无法验证的条目一律不动
交付物编辑完成后产出/tmp/omo-docs-drift/fix-report-f2.md,逐项标记 FIXED / SKIPPED

这套规则的本质是"证据优先、宁缺毋滥":文档中的每个模型名、每个提供商列表、每行配置,都必须能在源码中逐字找到依据;找不到依据的表述要么被改写,要么被跳过并记录,而不是凭印象"修正"。这正是文档漂移审计区别于普通校对的核心差异。

模型-代理匹配文档的 20 项校准

agent-model-matching.md 是 F2 修复工作量最大的文档(20 项指令),其核心矛盾是:模型生态快速演进(GPT-5.6 Sol、Kimi K3、GLM 5.2、MiniMax M 系列等),而内置回退链的定义在 agent-model-requirements.ts 中持续变化,文档容易停留在旧版本。

GPT-5.6 Sol 成为新主角

三项修正把 GPT-5.6 Sol 推到了文档的前台:

  • Sisyphus 的第三自动 rung:原文档写"Sisyphus uses Claude, Kimi, and GLM",修正后必须补上 GPT-5.6 Sol。从源码看,Sisyphus 的完整回退链确实包含四个自动 rung(agent-model-requirements.ts):
sisyphus: { fallbackChain: [ { providers: ["anthropic", "github-copilot", "opencode"], model: "claude-opus-5", variant: "max" }, { providers: ["opencode-go", "kimi-for-coding", "moonshotai", "opencode", "bailian-coding-plan", ...], model: "kimi-k3" }, { providers: ["openai", "openai-codex", "github-copilot", "opencode"], model: "gpt-5.6-sol", variant: "medium" }, { providers: ["zai-coding-plan", "opencode", "bailian-coding-plan"], model: "glm-5.2" }, { providers: ["opencode"], model: "big-pickle" } ], requiresAnyModel: true, }
  • Hephaestus 是 Sol-only 单 rung 代理:修正指令明确"Hephaestus requires the GPT-5.x family"应改为"Hephaestus 只有一个自动模型 GPT-5.6 Sol,且不存在 GPT-5.4 / 5.5 回退"。源码证实了这一点(agent-model-requirements.ts):hephaestusfallbackChain仅含一个gpt-5.6-sol (medium)rung,并带有requiresProvider声明,要求连接 openai / openai-codex / github-copilot / opencode 之一。
  • Prometheus 没有 GPT rung:文档中原把 Prometheus 列入 GPT 路径列表,但源码中 Prometheus 的链只有 Claude Fable 5.1(xhigh)→ Kimi K3(max)两个 rung(agent-model-requirements.ts),没有任何 GPT 模型,因此必须从 GPT 路径列表中移除。

Sisyphus 丢失链与 Kimi K2.7 的重新定位

修正指令第 7 项是典型的口径纠偏:原文档声称"Sisyphus 丢失 Claude 时应回退 Kimi K3、Kimi K2.7、GLM 5.2、Big Pickle 并避免 GPT"。修正后的真实链是Kimi K3 → GPT-5.6 Sol (medium) → GLM 5.2 → big-pickle,且K2.7 不是任何内置链的自动 rung——它只是手册/目录(catalog)选项,所有内置链现在都使用 K3。

同类纠偏还有:

  • "丢失 GPT-5.4/5.5/5.6 应回退 DeepSeek v3.2"不成立:没有任何内置 deep-agent 链使用 DeepSeek v3.2。各代理的实际链不同——Hephaestus 是 Sol-only;Oracle 则是 Sol → Gemini 3.1 Pro → Claude Opus 5 → GLM 5.2(agent-model-requirements.ts)。
  • Kimi K3 重复行合并:文档中两行重复的 Kimi K3 应合并为一行;Kimi K2.7 行改为"手动/目录选项,不在任何内置链中"。
  • "GPT-5.6 Sol 是关键回退"的表述收窄:在具名代理中,只有 Atlas 的链包含 GPT 回退 rung(gpt-5.6-sol (medium),见 agent-model-requirements.ts),因此该表述必须限定到 Atlas。

Explore / Librarian 的精确链与 MiniMax 家族

Explore 与 Librarian 的链在源码中完全一致(agent-model-requirements.ts),修正要求文档照此补全:

gpt-5.6-luna-fast (low) → deepseek-v4-flash (max) ← 紧跟在 Luna Fast 之后插入 → qwen3.7-plus → minimax-m3 / MiniMax-M3 → minimax-m2.7 ← 与 gpt-5.4-nano 一同纳入 rung 列表 → claude-haiku-4-5 → gpt-5.4-nano

细节修正包括:首个gpt-5.6-luna-fastrung 必须标注(low)变体;"MiniMax M2.7 通过 OpenCode Go 与 OpenCode Zen 使用"改为opencode-go 与 vercel两个提供商;"MiniMax M2.7 Highspeed 是 OpenCode 目录条目"改为vercel-only 回退 rung

MiniMax 的使用范围也随之扩大:文档原称"MiniMax 仅用于 Explore 和 Librarian",实际还用于Atlas 与 Sisyphus-Junior(后者在 agent-model-requirements.ts 中还有big-pickle收尾 rung)。

visual-engineering 链与 GLM 使用边界

类别侧的链定义在 category-model-requirements.ts 中,visual-engineering的 Opus rung 提供商集合为anthropic / anthropic-api / github-copilot / opencode。修正指令要求文档侧补齐第四 runggpt-5.6-sol (medium)(与deep类别的gpt-6-astra (high) → gpt-5.6-sol (medium)结构一致),并把 GLM 5.2 的活跃使用行收敛为Sisyphus、Oracle、Momus(Prometheus、Metis 等代理的链中没有 GLM rung,见 agent-model-requirements.ts)。Sisyphus 的 GLM 5.2 rung 提供商则从opencode-go修正为直接编码计划提供商(agent-model-requirements.ts 中为zai-coding-plan / opencode / bailian-coding-plan)。

注入顺序值与默认值的源码级核对

修正指令第 20 项最为隐蔽:文档中代理注入的order值 0,1,2,3 应改为 1,2,3,4。源码给出了确定性证据——agent-priority-order.ts 中reorderAgentsByPriorityindex + 1注入序号:

for (const [index, displayName] of orderedDisplayNames.entries()) { if (Object.prototype.hasOwnProperty.call(agents, displayName)) { ordered[displayName] = injectOrderField(agents[displayName], index + 1) seen.add(displayName) } }

从 0 基索引加 1,实际注入值必然是 1,2,3,4,文档写 0,1,2,3 属于复制粘贴层面的漂移。而报告中的:259:335-337两条("unspecified-low 的 Luna 默认值")则被REJECTED:因为类别的默认值确实是openai/gpt-5.6-luna:xhigh(见 delegate-task 类别定义 的默认配置),只有需求链从 Terra high 起步——这不是文档错误,因此修复者被明确要求"Leave those lines"。这一节展示了审计流程的完整性:不是所有差异都要修,源码说了算

已知问题文档的 6 项状态修正

known-issues.md 的修正模式与模型文档不同:它处理的是问题生命周期状态,即"已解决的历史问题不应再以开放问题形式误导读者"。

修正指令内容当前文档状态
Ralph Loop<promise>VERIFIED</promise>探测问题降级为历史/已解决注释:Ralph Loop 不再接入当前 session hooks,Goal 子系统不使用该探测器#5839已标记 Resolved
内置 GPT-5.5 推理强度冲突内置链已改用 GPT-5.6 Sol,仅保留为手动自定义提供商/上游 OpenCode 的注意事项#5529降级为 caveat
required-model 未固定子问题标记已解决:必需代理在可用性门禁失败时会被跳过#5604已标记 Resolved
LSP 配置位置支持的配置文件收敛为.opencode/lsp.json.omo/lsp.json.omo/lsp-client.json或用户级lsp.json#4225工作区列表已更新
Ralph Loop 日志洪水历史/已解决注释(Goal 已取代 Ralph Loop)#5105已标记 Resolved
Windows Bun.serve 问题运行时技能源服务器在 Bun.serve 不可用时回退到 Node HTTP#5025已标记 Resolved

源码证据清晰可查:LSP 配置列表定义在 mcp/lsp.ts 的PROJECT_LSP_CONFIGS = [".opencode/lsp.json", ".omo/lsp.json", ".omo/lsp-client.json"];Ralph Loop 的"保留但未接线"状态可以从 hooks/index.ts 看到——createRalphLoopHookcreateGoalHook同时被导出,但当前会话接线只走 Goal 路径。修正指令专门提醒:Ralph Loop 目录(hooks/ralph-loop)虽然保留,但它已经是历史组件,文档必须避免让读者以为它仍在生效。

发布链路三份文档的修正

Codex 遥测:从 npx 到 bunx 的运行时策略对齐

codex-telemetry.md 只有一项修正:安装命令从npx lazycodex-ai install改为bunx lazycodex-ai install。理由是仓库运行时策略Bun-first,且publish.yml发布流程会随包分发lazycodex-ai的 bin。当前文档中两处来源(installplugin)均已使用bunx表述。

这份文档其余内容(如遥测事件omo_codex_daily_active、每日去重状态文件~/.local/share/omo-codex/posthog-activity.jsonOMO_CODEX_DISABLE_POSTHOGOMO_DISABLE_POSTHOG两级退出开关)不受修正影响,保持了"仅发送匿名日活、绝不含提示词内容与密钥"的隐私边界,可参见 隐私政策。

lazycodex-ai npm 保留:可信发布成为硬门槛

lazycodex-npm-reservation.md 的两项修正属于流程升级

  1. trusted-publisher 预检从软性建议升级为硬门槛publish.yml的 preflight-trust 阶段对所有入选发布包(含lazycodex-ai)强制执行;缺少可信发布配置会直接导致预检失败并阻断发布。因此原文档中"手动npm publish+NPM_AUTH_TOKEN"的 playbook 必须删除,改为:先在 npm 侧配置 GitHub Actions 可信发布(Provider 为 GitHub Actions,Organization 为code-yeongyu,Repository 为oh-my-openagent,Workflow 为publish.yml),然后完全通过工作流发布。
  2. 拆分触发条件明确化:仓库推送与 GitHub Release 是两个独立事件——当生成文件与 marketplace 仓库不同时推送code-yeongyu/lazycodex仓库;只有当生成载荷与上一个lazycodex-ainpm 载荷比较有变化时才创建 GitHub Release。两者都需要LAZYCODEX_SYNC_TOKEN密钥。

文档还维护了lazycodex版本命名空间的保留规则:LazyCodex-only 发布必须使用带保留后缀的版本(如5.0.0-beta.62.lazycodex.15.0.0-lazycodex.1),正常 omo 发布会拒绝该标识符,双向互斥。预检诊断的重试预算(OIDC 每次 30 秒超时、最多 6 次尝试、1/2/4/8/16 秒退避)也是文档记录的可操作细节。

发布流程:版本由工作流计算而非手工预置

release-process.md 的修正纠正了一个流程误区:原文档称"版本提升与包元数据必须已存在于发布分支",实际流程是工作流计算版本 → 在 release-state 分支上盖章包元数据 → 打开并合并 release-state PR → 从准备好的 SHA 重新发布。这正是 publish.yml 中双 dispatch 设计的文档化表达:

  • 第一次 dispatch 的prepared_release_sha为空:执行门禁、准备或复用 release 状态、创建/校验 tag,然后从该 tag 发起第二次 dispatch;
  • 第二次 dispatch 携带精确的prepared_release_sha:只有这次运行能执行平台发布、主包发布与 release 创建。

同时文档强调幂等守卫(重复 tag 复用、npm 已发布探测、marketplacegit diff --cached --quiet跳过无变化提交)与恢复纪律:gh run rerun --failed <run-id>仅用于瞬态失败;一旦出现 release commit、tag 或 npm 发布,必须恢复既有 run 而不是新开一次;绝不手工发布 npm 包或手工移动 release tag

方法论沉淀:cite → verify → edit → report

从这份 F2 指令可以提炼出可复用的文档漂移修复循环:

  1. cite(定位):每条修正都带精确锚点(文档行号 + 源码引用),例如"agent-model-requirements.ts:12-28"。
  2. verify(验证):编辑前重新核对引用是否仍成立;源码与文档双重确认,任何一方不匹配就跳过并记录,而不是猜测。
  3. edit(最小编辑):只改差异点,保持 ASCII、不用 em dash,避免引入与主题无关的重写。
  4. report(报告):交付fix-report-*.md,逐项标记 FIXED / SKIPPED,直到全部条目解决(STOP WHEN all items resolved)。

这套循环的价值在于:文档修正不再是"文笔问题",而是可验证的工程问题。每条表述都能指回一个源码文件;每个 REJECTED 条目都带一句源码证据。对维护者而言,这意味着文档可以像代码一样被 review、被回归测试;对使用者而言,模型匹配文档中的每一条链、每个提供商列表,都是运行时真实行为的镜像。

延伸阅读

  • 模型-代理匹配指南:三个模型配置档位、提示词预设与安全/风险覆盖对照
  • 已知问题:已解决条目的历史化写法
  • Codex Light 遥测:匿名日活事件与退出开关
  • lazycodex-ai npm 发布手册:版本命名空间与可信发布门槛
  • 发布流程:双 dispatch、幂等守卫与恢复纪律
  • 源码锚点:内置代理回退链、类别回退链、内置模型配置档位、代理-模型需求定义、类别-模型需求定义

【免费下载链接】oh-my-openagentOmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询