☰
Codex Autoresearch 的7种运行状态详解:active、complete、blocked 何时出现?
2026/10/2 2:54:12 网站建设 项目流程

Codex Autoresearch 的7种运行状态详解:active、complete、blocked 何时出现?

【免费下载链接】codex-autoresearchCodex Autoresearch Skill — A self-directed iterative system for Codex that continuously cycles through: modify, verify, retain or discard, and repeat indefinitely. Inspired by Karpathy’s autoresearch concept.项目地址: https://gitcode.com/gh_mirrors/co/codex-autoresearch

Codex Autoresearch 是一个面向 Codex 的自主迭代实验 Skill:它让 AI 在 Git 仓库中持续执行"修改 → 验证 → 保留或回退 → 重复"的循环,直到数值指标达到目标。本文用通俗的语言详解 Codex Autoresearch 的 7 种运行状态(active、complete、blocked、stopped、error 等),帮助你一眼看懂自动实验循环当前进行到哪一步、该做什么。

先了解:状态是怎么来的?

Codex Autoresearch 的核心思路是把一个仓库级目标变成一个受控的实验循环:

检查现状 → 只改一处 → 验证指标 → 好就保留、差就回退 → 无限重复

它有两份"账本"(位于autoresearch-results/目录):

文件作用
run.json不可变的运行配置(目标、指标、范围、目标值)
events.jsonl只追加的事件历史,是状态的唯一真实来源

系统每次都会逐条校验全部事件来推导当前状态,而不是靠记忆或缓存。相关规则见 references/experiment.md 和 SKILL.md。

7 种运行状态速览

官方在 docs/GUIDE.md 中给出了完整定义,下表是精简版:

状态含义类比
not_initialized还没有任何运行白板
initialization_failed基线初始化失败起跑时摔了
active还可以继续做实验比赛中
complete指标达到目标冲过终点
stopped用户停止或达到迭代上限被按了暂停
blocked需要外部条件才能继续等红灯
error命令、Git 或状态契约出错发动机故障

逐一看清每种状态

1. not_initialized:全新起点

当你第一次对某个仓库调用该 Skill 时,status命令会返回not_initialized,表示"这里还没有实验"。这是唯一被视为全新运行的状态——此时 Codex 会检查仓库、向你提议目标/范围/指标/目标值,等你确认后才初始化。

2. initialization_failed:基线没跑起来

初始化需要采集基线指标(baseline),如果基线命令输出不合法、guard 在基线就失败、或仓库不干净,就会落在这个状态。此时可能只有init-error.json而没有run.json。处理方式:查看诊断日志,执行archive归档失败尝试后再重试(详见 references/workflow.md)。

3. active:正在比赛,别打扰 🏃

active是最常见的"进行态"。只要指标还没达标、迭代数没超限、也没有终端事件,状态就是active。

在active期间,每一轮迭代的流程是:

  1. Codex 读取已验证的状态和历史事件
  2. 在确认的范围内做一个聚焦修改
  3. 控制脚本创建试验提交,运行验证命令和 guard
  4. 指标变好且 guard 通过 →keep(保留提交);否则discard(自动 revert)

⚠️ 常见误区:"没进展"不等于 blocked。假设失败、指标暂时不涨都属于active,只有真正被外部条件卡住才算 blocked。

4. complete:指标达标,终点线 🏁

当保留下来的指标(retained metric)达到你确认的目标值时,finish命令会写入complete事件,运行终止。注意:complete是不可恢复的——想跑新目标,必须先归档(archive)再初始化。

上图就是一次典型complete运行的 HTML 报告:基线为 2 次错误,3 轮迭代后指标降到 0(目标达成),其中 1 次试验被 discard 回退、2 次被 keep 保留。

5. stopped:主动暂停或迭代用尽

两种触发方式:

  • 用户主动停止(后台运行的stop命令):可以resume --note <新方向>继续;
  • 达到迭代上限:这类运行不能直接恢复,需归档后用重新确认的上限重新开始。

6. blocked:等待外部条件变绿 🚦

blocked是最有门槛的状态。它只在以下情况出现:

  • 所有有意义的实验都依赖不可用的外部资源:人类信息、凭据、数据、硬件、服务访问等;
  • 前台运行还要求同一阻塞因素连续 3 轮 Goal 都未解除,才允许记录block。

"难 bug"、"假设失败"、"暂时没改善"统统不是blocked。解除方式:外部条件变化后执行resume --repo <repo> --note <变化说明>。

7. error:故障即停,拒绝猜测

只要发生以下情况就会进入error:指标输出格式非法、命令超时、Git 状态意外、回滚失败、事件日志损坏等。

设计哲学是"故障即停,不重建、不猜测":错误会指名具体的不变量违规和完整日志路径,你修好原因前无法 resume。如果错误还残留着一个未回退的试验提交,系统会直接拒绝恢复——必须手动恢复 Git 后归档。

附赠:后台模式的 3 个运行时状态

后台(background)运行还有一个runtime.json,其中的state字段是独立维度(见 references/background.md):

运行时状态含义
running控制器正在驱动 worker 循环
orphaned事件日志说 active,但记录的控制器进程已消失
not_started尚未启动

orphaned需要你先确认 worker 是否还活着:活着就不能 stop/resume/archive;都不活了才能用stop关闭事件状态。

如何查看当前状态?

三个只读命令,都通过控制脚本 scripts/autoresearch.py 执行:

# 查看当前运行状态(核心命令) python3 <skill-root>/scripts/autoresearch.py status --repo <repo> # 查看实验历史(终端表格) python3 <skill-root>/scripts/autoresearch.py history --repo <repo> # 生成 HTML 报告(指标轨迹 + keep/discard 时间线) python3 <skill-root>/scripts/autoresearch.py report --repo <repo>

history和report都会先校验完整事件历史再渲染,保证你看到的数字和状态绝对可信。

总结

你想了解的看哪里
7 种状态的权威定义docs/GUIDE.md
每种状态下的恢复操作references/workflow.md
blocked 的判定标准references/experiment.md
事件校验源码scripts/autoresearch_core.py
快速上手示例docs/EXAMPLES.md

一句话记住:active 是默认姿态,complete 是唯一不可逆的终点,blocked 必须等外部,error 必须先修原因。掌握这 7 种状态,你就能在 Codex Autoresearch 的自主实验中做到心中有数。

【免费下载链接】codex-autoresearchCodex Autoresearch Skill — A self-directed iterative system for Codex that continuously cycles through: modify, verify, retain or discard, and repeat indefinitely. Inspired by Karpathy’s autoresearch concept.项目地址: https://gitcode.com/gh_mirrors/co/codex-autoresearch

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

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

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

立即咨询