Codex Autoresearch故障排查清单:10个常见报错症状的诊断命令与修复策略

原创2026-10-25 16:13:491,673 阅读

Codex Autoresearch故障排查清单:10个常见报错症状的诊断命令与修复策略

Codex Autoresearch 是一款为 Codex 提供优化循环(benchmark → 实验 → 记录 → 复盘)的插件,但在实际使用中,新手经常遇到各类报错:dist 缺失、benchmark 不输出指标、Dashboard 打不开、ledger 数据异常等。本文整理了一份 Codex Autoresearch 故障排查清单,针对 10 个最常见的报错症状,给出对应的诊断命令与修复策略,帮助你在重复执行命令之前先定位真正出错的层。

Codex Autoresearch 仪表盘:查看指标趋势、Keep 决策与实验证据的 Codex Autoresearch 故障排查辅助面板

💡 核心原则:先定位出错的层,再决定动作。用同样的前置条件重试同一个命令,通常只会得到同样的混乱——只是更旧。官方排查文档见 troubleshooting.md。

一、通用快速诊断:4 条命令先跑一遍

在逐个排查之前,先用这套"快速诊断包"(troubleshooting.md 中的 Fast diagnostic packet)了解全局状态:

node scripts/autoresearch.mjs state --cwd <project> --compact
node scripts/autoresearch.mjs recommend-next --cwd <project> --compact --operator-checklist
node scripts/autoresearch.mjs doctor --cwd <project> --check-benchmark --explain
node scripts/autoresearch.mjs onboarding-packet --cwd <project> --compact

⚠️ 在执行任何可能 commit、revert 或切换分支的命令前,先运行 git status --short 确认工作区状态。

二、安装与运行时故障

1. 源码检出缺少 dist/ 目录

症状:从源码启动时报错,插件目录下没有 dist/。

诊断:确认是否安装了 gh 命令行工具,以及 GitHub 网络是否可达。

修复:在插件目录运行 node scripts/autoresearch.mjs --help 触发 hydration(运行时水合)。注意:如果校验和、release 签名或归档校验失败,hydration 会主动停止——不要跳过。

2. Hydration 报告保留了 rollback 目录

症状:运行时替换过程中报错,提示存在一个未清理的保留回滚(rollback)目录。

诊断:检查报错中点名的 active 与 rollback 目录。

修复:不要删除任何未标记或存在链接关系的路径。只有当 active 目标缺失时,才恢复已标记的 rollback;确认 active 目标有效后,再移除过期的标记 rollback。

3. 源码行为与 Codex 中安装版不一致(runtime drift)

症状:同一份改动,源码直接跑与通过 Codex 插件跑行为不同。

诊断命令:

node scripts/autoresearch.mjs doctor --check-installed --explain

修复:读取输出中的 installedRuntimePath、installedRuntimeShape、installedRuntimeProvenance 三个字段,判断是"水合一个 source 形态的包"、"刷新过期缓存",还是"清理多个规范版本造成的歧义"。在改回源码行为之前,先消除这种漂移。

4. Setup wrapper 调用自己(递归包装器)

症状:setup 生成的 wrapper 脚本内部又调用了自己,导致递归。

修复:替换这个递归 wrapper,或者用真实的 --benchmark-command 重跑 setup。

三、基准测试与正确性检查故障

5. Benchmark 不输出主指标(no primary metric)

症状:实验跑完了,但解析不到主指标数值。

诊断命令:

node scripts/autoresearch.mjs benchmark-lint --cwd <project>

修复:Codex Autoresearch 要求基准命令至少打印一行 METRIC <primary>=<number>(例如 METRIC seconds=12.34)。修改 wrapper 使其输出该格式;如果是纯计时命令,可配置 --benchmark-prints-metric false。

6. benchmark-lint 超时

症状:连诊断探针都跑不完。

诊断:说明 benchmark wrapper 本身损坏或任务切片过大。

修复:修复 wrapper、预热缓存,或使用有界的任务切片(bounded task slice)。⚠️ 这属于基准修复,不是产品进展——不要把它当成优化成果记录。

7. Checks 失败(correctness 检查未通过)

症状:指标有提升,但 accuracy / 回归等正确性检查失败,状态为 checks_failed。

诊断命令:

node scripts/autoresearch.mjs checks-inspect --cwd <project> --command "<checks>"

修复:单独隔离并修复正确性命令,然后修复该 packet 或 reject 它。在 checks 通过之前,结果只能停留在 experimental 状态。

8. Packet 超时但已写入部分产物

症状:实验 packet 超时,但磁盘上已经留下了一些 artifact。

诊断命令:

node scripts/autoresearch.mjs partial-results --cwd <project> --from-last

修复:先取回部分结果,再决定是否重跑。注意:这些已记录的行只是诊断性的 measure 证据,不能因为"跑得很贵"就被提升为正式结论。

四、Git 与日志(ledger)故障

9. run 编号重复或 ledger 被手工编辑

症状:出现重复的 run 编号、分段错乱,或有人直接改过 autoresearch.jsonl。

诊断命令:

node scripts/autoresearch.mjs ledger-doctor --cwd <project> --json

修复:确认适合做 duplicate-run 归一化后,使用带备份的保护式修复:

node scripts/autoresearch.mjs ledger-doctor --repair --yes --cwd <project>

修复后务必确认返回的 backupPath。详见 operate.md 的 Repair 章节。

10. next_blocked_by_truncated_fingerprints / next_blocked_by_loop_contract

症状:运行 next 被拒绝,报指纹截断或循环契约阻塞。

修复策略:

  • next_blocked_by_truncated_fingerprints:脏文件无法安全指纹化。清理、提交或 stash 脏路径(或缩小脏文件集合)后重试 next;
  • next_blocked_by_loop_contract:决策胶囊或控制平面阻塞项占用了下一个动作。先运行它打印出的阻塞命令并确认,或开启新 segment(new-segment),而不是硬闯。

五、Dashboard 故障

11. 附加排查:Dashboard 打不开或没图表

症状与修复(常见三种):

症状 原因 修复
Dashboard 以 file:// 打开 静态导出 运行 serve --cwd <project>,使用打印出的 loopback URL
实时刷新返回 HTTP 409 刷新期间 session 被写入 等写入完成后重试,或等下一次自动刷新
没有图表 还没有记录任何 packet 完整跑完一轮 next + log 循环

另外提醒一点常见"认知故障":Dashboard 是只读的,setup、实验、记录、导出、收尾都必须走 CLI。如果浏览器和终端给出的结论不一致,停下来修好这个分歧,而不是选一个"看起来对"的答案。

六、收尾建议:排查前先记住的三句话

  1. 先诊断,后重试——用 benchmark-lint、benchmark-inspect、partial-results 等便宜命令回答"上次到底哪里失败了",再决定是否重跑昂贵 benchmark;
  2. 先 git status --short,后写操作——任何可能变更 Git 状态的动作前都先看工作区;
  3. ledger 是唯一记录——聊天历史只能解释上下文,autoresearch.jsonl 才是事实,出现分歧时以 ledger 为准。

更多细节可参考官方文档:Troubleshooting、Operate、Start,以及演示会话示例 demo.md。

登录后查看全文
codex-autoresearch