Autonomous Long-Running Coding Agents:目标驱动、自主执行、闭环验证 · 干货攻略

  • 链接: https://x.com/omarsar0/article/2065880971031834786
  • 分类: x-tips
  • 来源: X @omarsar0
  • 作者: Jay
  • 更新: 2026-09-03

这是什么

Autonomous Long-Running Coding Agents(自主长时运行编码智能体)是一种从"人类逐轮驱动"转向"目标合同驱动"的编码 Agent 新范式。其核心思想来自 DAIR.AI 联合创始人 Omar Sarwar(@omarsar0)于 2026 年 6 月 11 日在 DAIR.AI Academy 开设的同名直播课(165 人报名,有录像),并在随后发布的 X 文章中整理成系统方法论。

传统 Agent 范式中,人类在聊天窗口中逐轮输入指令,Agent 执行一步、人类反馈一步,一旦人类停止交互,Agent 立即停止。这种范式在短任务上有效,但在真实工程场景(大型重构、跨日任务、无人值守自动化)中存在天花板:上下文会衰减、Agent 会自行宣布"任务完成"而实际未完成、会在十轮之前修复的 bug 隔几轮又重新引入。

长时运行编码 Agent 的目标是:让 Agent 在人类离线后依然能规划、执行、检查、修正,持续推进直到目标达成或明确失败。

为什么值得关注

@omarsar0指出,2026 年编码 Agent 领域最重要的趋势不是模型能力,而是控制系统的成熟度。Claude Code(Anthropic)、Codex(OpenAI)、Cursor 都在 2026 年上半年密集上线了长时运行相关功能:

平台 功能 状态
Claude Code /goal 目标模式 官方文档确认可用
Claude Code /loop 定时循环 官方文档确认可用
OpenAI Codex Goal Mode 2026 年 5 月 22 日 GA(官方 @OpenAI 公告)
Cursor Background Agent + Long-running 开关 2025 年 6 月已上线

根本问题:大多数严肃工程任务横跨数小时乃至数天,包含模糊需求、隐藏约束、部分失败、上下文变化和反复验证。长时运行 Agent 的核心工程挑战是持久化(persistence)、恢复(recovery)和验证(verification)——而不是模型本身。

核验过程

  1. @omarsar0 X 文章:确认了 executor/evaluator 分离、外部验证器优先、确定性检查优先、证明工件等核心原则,以及与 Claude Code / Codex 的具体集成。
  2. DAIR.AI Academy 活动页(academy.dair.ai/events):确认直播于 2026 年 6 月 11 日举行,165 人报名,录制可用;与 Claude Code 团队和 Codex 合作撰写。
  3. AddyOsmani.com 博客(2026-04-28):对长时运行 Agent 做了三层定义(长程推理 / 长时执行 / 持续代理),与 @omarsar0 文章互相印证;引用 METR 数据支撑时间线判断。
  4. METR 官网(metr.org/time-horizons):确认前沿 Agent 的任务完成时间线从 2019 年约每 7 个月翻倍(2019-2024),2024 年后加速至约每 4 个月翻倍;2026 年 5 月最新数据显示最强模型在 50% 可靠度下约达 16-20 小时。⚠️ METR 注明"16 小时以上的测量在当前任务集上不可靠"。
  5. Anthropic Claude Code 官方文档(code.claude.com/docs/en/goal):确认 /goal 由独立快速模型在每轮后判断完成条件是否满足;列出自适应模式(auto mode)为长时间运行必要条件。
  6. @OpenAI 官方公告(2026-05-22):确认 Goal Mode 于 2026 年 5 月 22 日在 Codex app、IDE 插件和 CLI 全面 GA,定位为"工作数小时乃至数天无需人工介入"。

原帖主张"Claude Code 用第二 Agent 评判,Codex 要求证据支持完成"的分工差异:已在官方文档中得到部分确认(Claude Code 确实用单独模型判断完成条件),但 Codex 的具体判断机制未在官方文档中找到明确描述,保留原帖说法并标注"原帖主张"。

上手步骤

1. 理解目标(goal)是合同,不是加长 prompt

写目标时,需要明确四件事:

  • 目标状态:最终要达到什么?(如"所有测试通过且 linter 无警告")
  • 所需证据:如何证明成功了?(如"pytest 输出 + 截图 + 变更文件列表")
  • 不可违反的约束:绝对不能做什么?(如"不修改 config 文件")
  • 资源上限:最多多少轮或多少 token?
# goal.md 示例(项目根目录)

## 目标
将 `legacy/auth/` 模块迁移到 `src/auth/`,与新 API 对齐,所有调用点编译通过,测试覆盖率达到 80%。

## 成功证据
- [ ] `src/auth/` 下所有文件通过 `ruff check`
- [ ] `pytest tests/auth/` 全部通过
- [ ] `mypy src/auth/` 无报错
- [ ] 变更日志已更新

## 约束
- 不修改 `config/` 目录
- 不删除任何测试文件
- 保留原有 Git 历史

## 资源上限
max_turns: 50

2. Claude Code 长时运行正确姿势

# 启动 auto mode + goal
export CLAUDE_AUTO_MODE=true
claude --dangerously-skip-permissions

# 在 Claude Code TUI 内
/goal 将 legacy/auth/ 模块迁移到 src/auth/,参考 goal.md

关键auto mode 是长时间运行的必要条件,没有它每个有意义的操作都会弹确认提示,导致无人值守失效。

3. OpenAI Codex Goal Mode

# CLI 启动 goal
codex goal "将 legacy/auth 迁移到 src/auth,符合 goal.md 的规范"
codex goal status    # 查看当前状态
codex goal pause     # 暂停
codex goal resume   # 恢复
codex goal clear    # 清除目标

Codex Goal Mode 于 2026 年 5 月 22 日全面开放,设计定位与 Claude Code /goal 相同,但完成判断逻辑基于"证据是否支持完成",而非"第二个 Agent 是否同意完成"。

4. 验证优先三层架构

第一层:确定性检查(最快、最可靠)
  ✅ `pytest tests/`            → 0 exit code
  ✅ `ruff check src/`          → 0 exit code
  ✅ `mypy src/`                → 0 exit code
  ✅ `git diff --stat`          → 只改动了目标文件

第二层:LLM 评判(用于模糊标准)
  ✅ "UI 是否符合设计稿?"     → 截图 + GPT-4o 视觉判断
  ✅ "文档是否完整?"           → LLM 评分 > 8/10

第三层:人工复核(用于关键节点)
  ✅ PR review                 → 工程师确认合并

5. 产出证明工件

每次有意义的步骤完成后,Agent 应留下:

  • 变更文件列表git diff --name-only
  • 测试运行结果(pytest JSON 报告)
  • 截图或录屏(UI 任务,用 Appshot 或 ffmpeg)
  • 基准曲线(性能任务,matplotlib 输出图)
  • 执行日志摘要(结构化 markdown)
# 留存工件示例
mkdir -p artifacts/$(date +%Y%m%d_%H%M%S)
cp -r src/auth/* artifacts/20260903_143000/
pytest --json-report --json-report-file=artifacts/20260903_143000/pytest_report.json
git diff > artifacts/20260903_143000/changes.diff

6. 跨会话状态持久化

# 根目录 goal.md 是状态持久化的核心
# 每次会话开始时 Agent 读取 goal.md
# 每次会话结束时 Agent 更新 goal.md(进度、已验证项、阻塞点)

# 额外的状态文件(可选)
state/
  last_checkpoint.md    # 最后检查点描述
  known_failures.md     # 已发现但未修复的问题
  context_rot_notes.md  # 上下文衰减预警

坑与适用边界

  1. 上下文衰减(Context Rot):即便模型上下文窗口未满,模型对早期决策的记忆也会悄然退化,导致 Agent 在第 30 轮重新引入第 5 轮已修复的 bug。症状是"任务完成"但测试红色。解法是确定性检查和频繁提交工件,不能依赖模型自我感知。

  2. 目标定义模糊的代价:弱目标给模型留出过早停止或重新定义成功的空间。例如"改进代码质量"这样的目标,Agent 可以在只做一次变量重命名后宣布完成。目标必须包含可测量的完成条件。

  3. Claude Code auto mode 的权限风险--dangerously-skip-permissions 让 Agent 可以执行任意 shell 命令,包括删除数据。生产环境建议配合容器化沙箱(如 Cursor Background Agent 的独立 VM 机制)使用。

  4. METR 时间线的适用边界:METR 测量的任务完成时间线反映的是当前前沿模型在受控评测集上的表现。真实工程环境中的模糊需求、需求变更、第三方依赖等会使实际可用时长低于 METR 数据。⚠️ METR 官方注明"16 小时以上的测量在当前任务集上不可靠"。

  5. 不适用场景:需要实时人工判断的设计决策、涉及财务/安全等不可逆操作、与外部 API 强绑定且无版本控制的遗留系统。长时间运行的适用场景是:大型重构、测试覆盖率提升、文档编写、依赖升级、自动化回归修复。

一句话结论

长时运行 Agent 的关键不在模型而在控制系统:目标合同 + executor/evaluator 分离 + 确定性检查优先 + 证明工件留痕,让 Agent 能在人类离线后持续自主工作——2026 年 Claude Code /goal 和 OpenAI Codex Goal Mode 已将这套范式产品化可用。