大家好,我是PaperAgent,不是Agent!
昨晚,OpenAI得GPT-5.6 Sol、Terra、Luna发布,冲破Anthropic的神话(Mythos)。
今天要分享的恰是Anthropic资深工程师发布的一份 11 页的报告,阐述面向智能体(Agentic)系统的循环工程(Loop Engineering)方法论。 近期最期待的一场ICML顶会Agent深度拆解!
!Image 1 * 核心范式转变: 你不再直接提示(prompt)智能体——你构建的是提示智能体的系统本身。
* 循环流程: 调度(Schedule)→ 发现(Discover)→ 构建(Build)→ 验证(Verify)→ 重复(Repeat)
* Anthropic 实战手册:拆解 Loop 的五步动作、六大组件、Generator/Evaluator 分离机制,以及 Stripe 每周合并 1,300 个机器 PR 的真实架构,0-1构建Loop实战。
一、Loop Engineering 到底是什么?
2026 年 6 月,一个概念在一周内被三位顶级工程师同时点燃:
* Peter Steinberger(OpenClaw 作者)在社交媒体上提出:别再给 Coding Agent 逐行写提示了,要设计让 Agent 自己循环运转的系统;
* Boris Cherny(Claude Code 负责人)公开表态:他不再手动提示 Claude,而是写 Loop 让 Claude 自己运行;
* Addy Osmani(Google Chrome 团队工程师)在博客上发表长文,正式命名了这个概念——Loop Engineering。
三人的共识指向同一个动作:设计的对象从"Agent 的单次行为"转变为"驱动 Agent 的完整系统"。
Loop Engineering 的精确定义是:替换你自己作为给 Agent 下指令的人,转而去设计一个能自动完成这件事的系统。你不再是引擎,而是设计引擎的人。
!Image 3: Table I: The Four-Layer Stack
Table I: The Four-Layer Stack
二、四层架构:从 Prompt Engineering 到 Loop Engineering 的跃迁
Loop Engineering 并非取代前三层,而是在它们之上叠加了一层。论文将 AI 工程实践划分为四层栈:
!Image 4: Fig. 1: The four-layer stack
Fig. 1: The four-layer stack
| 层级 | 关注对象 | 核心问题 | | --- | --- | --- | | Prompt Engineering | 写好一条提示 | 我该告诉模型什么? | | Context Engineering | 窗口里放什么 | 该检索什么、总结什么、清除什么? | | Harness Engineering | 武装单次运行 | 哪些工具、哪些动作、怎样算完成? | | Loop Engineering | 在 Harness 上调度 | 如何让它一遍又一遍地自动运行? |
每一层向上,关注的单元就放大一号:从一句话,到一个窗口,到一次运行,最终到一个能自我运转的循环。Loop Engineering 的核心新增能力是三个动词:定时运行(Runs on a timer)、派生助手(Spawns helpers)、自我喂养(Feeds itself)。
三、循环的五步动作与六大组件
3.1 五步动作:
一个 Loop 的"一圈"不是空转,而是完成五个具体动作:
!Image 5: Fig. 2: The five moves of one turn
Fig. 2: The five moves of one turn
| 动作 | 作用 | 晨间巡检 Loop 示例 | | --- | --- | --- | | Discovery(发现) | 自主找出本轮该做什么 | Skill 读取 CI 失败、Open Issues、近期 Commit | | Handoff(交接) | 将任务隔离地交给执行 Agent | 每个发现打开独立的 git worktree | | Verification(验证) | 用另一个 Agent 说"不" | 第二个子 Agent 对照测试和项目规范审查 | | Persistence(持久化) | 将结果写到对话之外 | 提交 PR、更新看板、写入状态文件 | | Scheduling(调度) | 让循环能自动转起来 | 每天早上自动触发,状态文件让次日接续 |
!Image 6: Table II: The Five Moves, Mapped to the Triage Loop
Table II: The Five Moves, Mapped to the Triage Loop
3.2 六大组件:让动作落地的工程实体
如果说"动作"是 Loop 的"行为",那么"组件"就是它的"部件":分享2篇最新Skill+Harness技术,可太强了!Image 7: Table III: Six Parts Mapped to Five Moves
Table III: Six Parts Mapped to Five Moves
| 组件 | 本质 | 对应动作 | | --- | --- | --- | | Automations(自动化) | 定时或触发式调度器 | Scheduling | | Worktrees(工作树) | 并行 Agent 的隔离目录 | Handoff | | Skills(技能) | 永久化的项目知识(SKILL.md) | Discovery | | Connectors(连接器) | 基于 MCP 的外部系统挂钩 | Persistence / Discovery | | Sub-agents(子代理) | 写代码的与审代码的分离 | Verification | | Memory(记忆) | 磁盘上的持久状态 | Persistence |
四、核心机制:Generator / Evaluator 分离
Loop 中最难的部分不是让 Agent 跑起来,而是在里面放一个能说不的东西。
4.1 自己给自己打分,永远是"优秀"
Anthropic 工程师 Prithvi Rajasekaran 的实证观察:让 Agent 评判自己刚写的代码,它会自信地给出好评——即使质量平庸。这不是智商问题,而是"自己批自己作业"的结构性缺陷:Agent 的上下文里塞满了"为什么这样写"的自我说服链条,它看到的不是结果,而是导致结果的理由。
4.2 调校怀疑者,比修正谦虚作者更容易
让写代码的 Agent 变得更自我批评,效果很差。但单独调校一个 Evaluator Agent,让它默认怀疑、通过行动验证(而非阅读判断)、并由一个全新的模型执行最终裁决——这远比让 Generator 自我批判更可行。
!Image 8
Claude Code 的/goal原语就是这一思想的产物:给 Agent 一个停止条件,让它循环运行直到满足条件,而判断是否满足条件的是一个更快、更小的独立模型,而非正在干活的那个。
五、五种失败模式:你的循环为什么跑歪了
Loop 的失败不是随机的,而是五个动作中跳掉一个的必然结果:
!Image 9: Fig. 4: Each anti-pattern is one move skipped
Fig. 4: Each anti-pattern is one move skipped
| 跳过的动作 | 失败模式 | 症状 | | --- | --- | --- | | Verification | Nodding Loop(点头循环) | 运行几百轮从未说过一次"不",自我批准垃圾代码 | | Persistence | Amnesiac Loop(失忆循环) | 每天从零开始,重复发现、重复冲突,无累积进展 | | Scheduling | Manual Loop(手动循环) | 演示当天跑得漂亮,演示完再没跑过 | | Discovery | Blind Loop(盲眼循环) | 人类每天早上还在决定 Loop 该做什么 | | Handoff | Tangled Loop(纠缠循环) | 并行 Agent 改同一个目录,合并时一团糟 |
六、三个真实案例
6.1 一个人的晨间自动化
Osmani 的晨间巡检 Loop 每天自动触发:
* 读取昨日失败的 CI、未关闭的 Issues、近期 Commit;
* 对值得处理的事项,打开独立 worktree;
* 一个子 Agent 起草修复,另一个子 Agent 审查;
* 自动提交 PR 并更新看板;
* 无法处理的丢进收件箱,状态文件保证次日接续。
6.2 Stripe's Minions:企业级规模的 1,300 PR/周
Stripe 的 Minions 流水线每周合并超过 1,300 个机器编写的 Pull Request,没有一行人工手写代码。
!Image 10: Fig. 5: Stripe's Minions pipeline
Fig. 5: Stripe's Minions pipeline
其架构的精髓在于确定性门控与 LLM 步骤的交错:
* 触发极轻(Slack @bot 或表情反应);
* 确定性编排器先扫描链接、拉取 Jira、用 Sourcegraph + MCP 组装上下文——这部分规则可硬编码,绝不交给概率模型;
* LLM Agent 写代码;
* 硬编码的 Linter 门控,Agent 无法跳过;
* Agent 修复 Lint;
* 硬编码的 Git Commit 步骤;
* 最终仍由人类 Review。
Stripe 的核心主张:可靠性来自约束的质量,而非模型的大小。运行环境采用 Devbox on EC2 的" cattle not pets"策略,千级 Agent 并行互不干扰。
6.3 调度方式的选择
| 方式 | 运行位置 | 需开机? | 最小间隔 | 能否访问本地文件? | | --- | --- | --- | --- | --- | | Cloud | 云端 | 否 | 1 小时 | 否 | | Desktop | 本地机器 | 是 | 1 分钟 | 是 | | /loop | 本地会话 | 是 | 1 分钟 | 是 |
!Image 11: Table IV: Scheduling Options Compared
Table IV: Scheduling Options Compared
6.4 跨工具链的通用能力
Loop Engineering 是一组能力,而非某个产品的独占功能。Claude Code 与 Codex 的对应关系如下:
七、隐性成本:验证债务、理解腐烂、认知投降与 Token 爆炸
Loop 在欢快地自动运转时,也在静默地积累四种成本:
!Image 13: Fig. 6: The four costs reinforce one another
Fig. 6: The four costs reinforce one another
- Verification Debt(验证债务):每个合并的 PR 都节省了时间,但未验证的输出在测试覆盖不到的缝隙中堆积,直到某个发布日早晨集中爆发。
- Comprehension Rot(理解腐烂):Loop 写的代码越多,人类对代码库的真实理解越滞后。读代码比写代码无聊,而 Loop 已经替你写完了。
- Cognitive Surrender(认知投降):Loop 越可靠,人类越懒得发表意见,最终从"没时间看"变成"懒得看"。
- Token Blowout(Token 爆炸):Loop 会派生助手、重试、无限循环,一个 Bug 可能烧掉整晚的预算。
八、如何安全地构建第一个循环
论文给出了三条站立式纪律:
9.1 永远抽样阅读(Read a Sample, Always)
不需要读所有输出,但每天读一个有代表性的样本,并强迫自己解释它做了什么、为什么这样做。无法解释 = 你的心理地图已经落后于代码库。
9.2 上线前先设上限(Cap Before You Ship)
在 Loop 第一次无人值守运行前,设置单次预算、每日预算、最大重试次数。这不是为了省钱,而是把开放式风险转化为有界风险。
9.3 留一扇门(Keep One Door Open)
在 Loop 中至少设置一个人类检查点。不是为了每次都干预,而是为了保持"能够干预"的位置。把所有门焊死的工程师,会在需要进去的那天发现自己已经丢了钥匙。
最后: 设计系统,而非逐行提示
Loop Engineering 的终极公式:停止给 Agent 下指令,转而去设计那个给 Agent 下指令的系统——但要像打算继续做工程师的人那样去设计,而不只是像那个按启动按钮的人。
Hermes Agent 王炸来了。。。
https://x.com/0xCodez/status/2069736449902027136https://drive.google.com/file/d/1qzKI4DKnyHRpXK1J3ATPqwaqLc0iNu-M/view