ClaudeCode 思考 - Loop 价值拆解:从解放人到自进化

Loop 真正值钱的,不是”让 AI 跑更久”

一个被误读的爆火概念

“Loop Agent”(循环型智能体)最近火得一塌糊涂。Addy Osmani(Google Chrome 工程负责人)连写三篇文章把它系统化,社区里 Ralph Loop、loop engineering、self-improving agent 这些词到处飞。

但绝大多数讨论都跑偏了——焦点全放在”让 AI 一直跑、跑很多轮”上。这是对 Loop 最大的误读。Loop 真正值钱的,从来不是”跑得久”。如果你只是开一个很长的对话让 AI 反复改,那不叫 Loop,那只是”更累的人工盯着”。

它的价值,在另一件事上。

顺带说一句:很多人拿 Loop 和”长会话”比来比去,争论它俩是不是一回事。那只是副产品,不重要。重要的是 Loop 凭什么值得被单独拎出来——这才是本文要讲清的。

价值一:把你从循环里替换出来

Addy 给 Loop Engineering 下的定义,是我见过最准的一句:

Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead.
(Loop 工程,就是把你这个”负责一轮轮提示 agent 的人”替换掉。你来设计那个替代你的系统。)

这句话点透了 Loop 的第一层价值:解放人

传统做法里,每一轮要不要继续、做得对不对、什么时候算完——全是你在推动,AI 只是在你驱动下接力执行。Addy 把这比作”把 AI 当成只有短期记忆的实习生”:你给清单、你检查、你存盘。driver 是你,judge 也是你。

Loop 把这个”你”工程化地抽走了。不是让你更省力地推,而是根本不需要你推。

价值二:人可以离场

这是 Loop 最性感的一点:你可以关掉电脑去睡觉,醒来发现它自己把活干完、验证过、提交了 PR。 Addy 的原话是 “ship code while you sleep”。

传统方式做不到——你必须全程在场,每一轮都得你点头。而 Loop 靠 hook、条件触发、定时器自己跑下去。人类能不能离场,是 Loop 区别于一切”人盯着的循环”的命门。

有一个铁律般的检验标准:你能不能放心地去睡觉? 能,才是 Loop;不能,就还是你自己在 loop。

价值三(这才是核心):真正的杠杆是”把 done 编码清晰”

这是全篇最反直觉、也最关键的一点。

直觉会告诉你:Loop 的威力来自”跑很多轮””跑很久”。Addy 戳破了它——

杠杆不是”让 agent 跑更久”,而是”把 done 的定义编码得足够清晰,让 loop 有明确优化目标”。

想想看:如果一个 loop 没有”完成”的精确定义,它要么瞎跑(没有收敛目标),要么永远跑下去(没有终止条件)。真正给 Loop 赋能的,是你能把”什么叫做完”写成机器能判断的条件——测试通过、lint 干净、覆盖率达标、或一个 completion promise。

done 编码得越清晰,loop 收敛得越快越稳。很多人搭了 loop 却不灵,十有八九是 done 定义模糊,loop 不知道往哪使劲。

这条之所以是文眼,是因为它把 Loop 从”一个让 AI 多跑几轮的小技巧”提升为”一种把目标工程化的方法论”:Loop 的本质不是循环,而是给循环装上一个可机械验证的目标。

价值四:分离,让它既保质又可控

光有目标还不够,Loop 还有两个工程化保障:

Worker / Judge 分离。 干活的 agent 和打分的 judge 是两个独立角色。judge 是另一套 eval 脚本或另一个 agent,它不靠人主观判断,只认数字。这让每一轮迭代都有客观标准——好就是好,不行就回退,没有”我觉得差不多了”的含糊地带。

可审计、可回滚。 每一步都留痕,失败自动 revert,不留垃圾。Loop 不是黑箱对话,而是有范围、可追溯、可回退的工程过程。

这两点具体怎么落地成协议,后面讲 flow skill 时会展开(auto-iterate 的 keep/revert 就是它的实现)。

价值五:它会越来越强

传统做法里,AI 这一轮学到的经验,往往随会话结束就丢了(顶多靠上下文压缩苟延残喘一会儿)。

Loop 不一样——它能把每一轮的教训回写到 skills 和 memory,跨 session 持续改进 agent 自身。换句话说,loop 跑得越多,agent 越强。这是从”用完即弃”到”自进化”的质变。

业界实践:Loop 不是我一个人的玩法

如果你觉得”Loop”只是个人折腾的概念,那就错了——2026 年它已经是 Anthropic 官方在推、一线大厂在用、开源社区在标准化的东西。

官方就在推这套

Anthropic 在 Code with Claude 2026 大会上专设「Long-Running Agents」站点,并开源 anthropics/cwc-long-running-agents 作为模式参考。它把 quality loop 拆成原语,并直接对比两条兑现路径:

产品内(开箱即用) 自建 harness
谁驱动 loop /goal 命令 你写的原语 + loop
谁判断 done 一个独立快速模型检查条件 你的 evaluator

换句话说,Anthropic 官方已经把”Worker/Judge 分离”和”done 编码”做进了产品——正是上文价值三、价值四的工业化版本。

两个让人坐直的案例

科学计算——Boltzmann 求解器。 Anthropic 的 long-running 实践里,Claude Opus 4.6 用几天就构建出一个 Boltzmann 求解器,与参考的 CLASS 实现达到亚百分点级精度一致。Addy Osmani 评价:这是”数月到数年的研究者时间,被压缩”。

大型工程——Rakuten 改造 vLLM。 据 Anthropic《2026 Agentic Coding Trends Report》,Rakuten 让 Claude Code 在 1250 万行代码的 vLLM 库里自主连续工作 7 小时,完成一种激活向量提取方法,数值精度 99.9%。这种规模、精度和自主时长,靠人在旁边一轮轮 prompt 是不可想象的——只有 loop 撑得住。

业界共识:别再手动 prompt 了

You shouldn’t be prompting coding agents anymore. You should be designing loops that prompt your agents.
—— Peter Steinberger(OpenClaw 作者)

Anthropic 内部同样如此——Claude Code 负责人 Boris Cherny 的工作就是写 loop,不是写单个 prompt。

想深入可以读

  • cobusgreyling/loop-engineering:loop engineering 的实践模式参考仓库
  • arXiv《Dive into Claude Code》:把 agent loop 归纳为”收集上下文 → 采取行动 → 验证结果”三阶段,并给出 auto-approve 率随使用从 20% 涨到 40% 的纵向数据

落地:flow skill 如何兑现这些价值

光说价值太虚。我自己搭了一套 ClaudeCode skill 体系来兑现它——核心是 flow-deep(深度编排管道)、auto-iterate(keep/revert 迭代协议)和 Ralph Loop(Stop Hook 强制持续)。它们不是三个孤立工具,而是同一套 Loop 思想在不同强度下的三层实现

整体管道:从”人来 steer”到”机器自治”

flow-deep 把一次任务编排成 Stage 0 到 5.7 的管道。前半段是人参与的长会话(规划、执行),后半段是机器自治的 loop(验证、收敛)。关键在两者的切换点:

stateDiagram-v2
    [*] --> 长会话: /flow-deep 启动 Stage 0-4
    长会话 --> 验证: Stage 5 强制验证
    验证 --> 完成: 全部 PASS
    验证 --> 迭代: 有失败 开启 iterate
    验证 --> 交还: 有失败 未开 iterate
    迭代 --> 完成: N轮内达标
    迭代 --> Ralph: N轮用完 ralph可用
    迭代 --> 降级: ralph不可用
    Ralph --> 完成: promise达成
    Ralph --> 完成: 策略穷尽
    Ralph --> 中断: cancel-ralph
    完成 --> [*]
    交还 --> [*]
    降级 --> [*]
    中断 --> [*]

这张状态机揭示了一个关键设计——Loop 不是一开始就启动,而是在”验证失败”这个明确节点上被触发。长会话负责开放式探索(方向没定,人来 steer);一旦方向定了、done 可量化,验证失败就自动切入 loop 收敛。这正好印证价值三:没有 Stage 5 那些可机械验证的验证项,整个 loop 机制都没有启动条件。

auto-iterate:价值四(分离 + 工程化)的落地

auto-iterate(Stage 5.5)是第一级 loop,在单个会话内做有界迭代。它把”Worker/Judge 分离”和”可审计可回滚”落成了一套 keep/revert 协议:

flowchart LR
    A["Review 审查现状"] --> B["Pick 选一个方向"]
    B --> C["Change 只改一处"]
    C --> D["Verify 机械验证"]
    D -->|"通过"| E["Guard 回归检查"]
    D -->|"失败"| RV["Revert 自动回滚"]
    E -->|"通过"| K["Keep 保留"]
    E -->|"失败"| RV
    K --> Q{"达标?"}
    RV --> Q
    Q -->|"否 且轮数剩余"| A
    Q -->|"是 或 轮数用完"| END["退出 auto-iterate"]
    style RV fill:#da1e28,color:#fff
    style K fill:#198038,color:#fff
    style END fill:#0f62be,color:#fff

它的 6 条核心规则,每条都是价值四的注脚:

  1. 每次只改一个——精确定位原因,失败时知道问题出在哪一处
  2. 机械验证——只信任验证命令输出的数字,杜绝主观判断(loop 只认数字,不认感觉)
  3. 自动回滚——失败不留痕迹,实验性改动用 experiment: 前缀提交,不行就退
  4. 简洁优先——同等效果选更少代码,防止 loop 越改越臃肿
  5. Git 即记忆——每步存盘,可追溯可回退
  6. 卡住时变换策略——连续 3 次 revert 就换方向,避免死磕

这套协议让 Judge 完全独立于 Worker——judge 只看验证数字,不看”我觉得改得不错”。这就是价值四说的”没有含糊地带”。

Ralph Loop:价值二(可离场)的落地

auto-iterate 还不够——它跑在单个会话里,N 轮用完就停,人还得盯着。Ralph Loop(Stage 5.7)是第二级 loop,杀手锏是 Stop Hook:拦截会话退出,强行让 loop 继续。这才是真正兑现”可离场”的机制——人可以真的走开。

Ralph Loop 有四个关键约束,每一个都是”可离场”的必要条件:

  • Stop Hook 拦截会话退出——这不是 Agent 级机制,是会话级机制。Agent 想停?不让停。
  • 固定 prompt——每轮注入的是启动时写好的同一份 prompt,不支持动态更新。因为 Stop Hook 只能注入预设内容,没有动态生成能力。解法是让 LLM 每轮自己去读 progress.md 的最新状态:固定的是”怎么取状态”的指令,变化的是”取到什么”。 状态是真实文件,不会像模型记忆那样失真,反而比动态生成 prompt 更健壮。
  • Completion Promise 诚实性——只有 Stage 5 全部通过、或策略真穷尽时才能输出”完成”,不许为了退出而撒谎。
  • session_id 隔离——Stop Hook 只拦截启动 loop 的那个会话,启动前必须清理 Stage 4 的 tmux 分屏,避免误伤其他会话。

嵌套:Ralph 包裹 auto-iterate

这两级 loop 不是替代,是嵌套:Ralph Loop 在外层,每轮 Ralph 内部仍跑 auto-iterate 的 keep/revert 协议。可以理解成——auto-iterate 负责”一轮内怎么逼近”,Ralph 负责”轮与轮之间怎么持续”。内层收敛,外层持续,合起来才是”你可以睡觉,它自己交活”。

五价值 ↔ flow skill 映射

Loop 价值 flow skill 兑现的机制
解放人 Stop Hook 替代人手动驱动每轮
可离场 Ralph Loop 的会话级强制持续
done 编码是真杠杆 Stage 5 的可机械验证验证项(loop 启动条件)
分离 + 工程化 auto-iterate 的 Worker/Judge 解耦 + keep/revert + Git 回滚
自进化 教训回写 skills/memory,跨 session 改进

别被空转骗了:怎么确认 Loop 真在收敛

Loop 有个隐藏陷阱——它可能假装在跑,其实原地空转。判断它真在收敛,盯这几样:

  • STATE.md 在更新current_stageralph_iteration 在变,说明它真在推进
  • TSV 历迹有记录:keep/revert 决策和 metric 变化都留痕
  • Git 有 experiment: 提交:迭代过程可追溯
  • 验证命令输出真数字:禁止 “should pass” / “probably”,loop 只认实打实的输出
  • Completion Promise 有证据支撑:不许为了退出而撒谎说”完成了”

没有这些证据,所谓”loop 跑完了”就不可信。这也是 Loop 的诚实性约束:策略真穷尽了才能宣告完成,否则必须附”部分完成”说明。

所以,Loop 到底值在哪

flowchart TD
    M["动机 解放人 replacing yourself"] --> E["效果 可离场 while you sleep"]
    M --> C["核心机制 done编码是真杠杆"]
    C --> Q["质量保障 分离+工程化"]
    C --> S["长期价值 自进化 跨session"]
    style C fill:#0f62be,color:#fff,stroke:#0f62be

一句话:Loop 把”人盯着的循环”变成了”机制自治的收敛”。

  • 解放人——替换掉那个每轮推你的角色
  • 可离场——你能睡觉,它自己交活
  • done 编码才是真杠杆——给循环装上可验证的目标
  • 分离与工程化——质量靠机制,过程可追溯
  • 自进化——跨 session 越用越强

它和长会话到底是不是一回事?不重要。重要的是——只要你能把”完成”写成机器认的条件,你就拥有了一个可以替你睡觉干活的系统。 这才是 Loop 的价值。


来源

文章作者: MichaelMao
文章链接: http://michaelmaomao.github.io/2026/06/13/ClaudeCode%20%E6%80%9D%E8%80%83%20-%20Loop%20Agent%20%E4%B8%8E%E9%95%BF%E4%BC%9A%E8%AF%9D/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MMao
我要吐槽下