读懂 Claude Code `/loop` 与编码 Agent 的循环革命

你有没有过这种体验------

推了代码,CI 要跑 10 分钟。你不想干等,于是切去干别的;10 分钟后回来一看,红了。改,推,再等 10 分钟,又红。一个下午就这么被切碎了。

或者更糟:测试套件里有十几个偶发失败的用例,你想一次性修完,结果 agent 一上来想同时改十几个文件,改得乱七八糟,你只好一个个回滚。

这两件事的共同点是:它们都是"循环"问题,而你一直在用"单次"的方式解决。

2026 年,编码 Agent 领域最值得注意的范式转变,就是从"prompt 一次"转向"让循环去 prompt"。Claude Code 负责人 Boris Cherny 的说法点破了这件事的本质:"我不直接 prompt Claude 了。我让循环去 prompt,我的工作是写循环。"

这个范式有个名字------loop engineering(循环工程) 。而 Claude Code 在 2026 年初推出的 /loop,是它最显眼的第一个工具。但用了几个月,我发现很多人要么不知道它,要么把它当 cron 闹钟用,要么被它烧掉一晚上的 API 额度。

这篇文章想讲透的不只是"/loop 怎么敲"------而是借它看清整个编码 Agent 的循环革命:为什么需要循环、循环分几层、Claude Code 的实现妙在哪、其他 Agent 谁有这能力、以及怎么真正用好它。


一、为什么"单次"永远不够:循环的三个层次

要理解 /loop,得先跳出 /loop 本身,看清"循环"这件事的全貌。社区里讨论的 "loop" 其实混了三种东西,我把它分成三层:

层次 含义 难度
L1 执行循环 单次会话内的 ReAct 循环(推理 → 工具 → 推理)
L2 自治循环 单会话内长跑,跑到某个条件满足才停
L3 调度循环 按时间间隔重复触发,带跨迭代的持久上下文

L1 是所有 Agent 的标配------只要是个 Agent,就有"推理→调工具→看结果→再推理"的基本盘,这不算特色。

L2 才是分水岭。能在一个会话里连续跑几小时、自己纠错、不到目标不罢休,这需要停止条件的精心设计。

L3 是最难、也最稀缺的一层 。它要同时做到"按时间重复"和"跨迭代记忆"------而这两者结合,恰恰是 Claude Code /loop 的位置。

记住这个三层模型,它是一会儿理解"各 Agent 差在哪"的钥匙。


二、/loop 到底妙在哪:不是"定时",是"带记忆的定时"

很多人把 /loop 理解成"定时闹钟":到点了,跑一下。这只对了一半。

它和系统 cron、和 watch 命令有一个本质区别,这句话值得加粗:

/loop 的循环绑定在会话上,每次迭代共享同一个上下文窗口。

对比两种方式就一目了然:

text 复制代码
外部 cron 包裹 claude -p:
  每次 = 冷启动 + 上下文清零
  agent 不知道上一轮做了什么,从头开始猜

/loop(会话内循环):
  每次 = 同一会话 + 同一上下文 + 同一工具连接
  agent 记得"上次试过方案 A 没用",直接试方案 B

外部调度器最致命的问题是**"上下文在两次运行间蒸发"**;/loop 让会话保持存活,agent 能逐步累积工作。

这才是 /loop 的核心价值------不是"定时",是"带记忆的定时"。

它是怎么实现的

/loop 不是凭空造的新东西,是把已有原语组合成循环的最薄一层。整个流程是:

text 复制代码
你输入 /loop "每5分钟检查构建"
   ↓
Claude 解析自然语言 → 生成 cron 表达式(*/5 * * * *)
   ↓
会话内调度器(CronCreate 工具)注册任务,返回 job ID
   ↓
定时器到点 → 在【当前会话】触发该 prompt
   ↓
同一上下文窗口执行(记得上轮)→ 工具调用 → 状态写磁盘
   ↓
循环,直到 Esc / 3 天到期 / 会话结束

也就是说,你用自然语言告诉它"每 5 分钟",它内部转换成 cron 表达式,然后用会话内的调度器按时触发。底层是 CronCreate 这类 cron 工具,/loop 是面向你的封装。

这里面有四个设计细节,每一个都值得玩味,因为它们揭示了"为什么 /loop 是这么设计的":

  • 会话级作用域 。循环活在当前会话里,不是后台守护进程。这是有意为之------用"不持久"换"安全可预测":没有孤儿进程凌晨 3 点烧你的 API 额度,关终端即停。代价是不耐用,要跨重启得换别的方案。
  • 持久上下文。核心卖点。同一会话 = 同一上下文 + 同一 MCP 连接,这正是它碾压外部 cron 的根本。
  • 10% 时间抖动(jitter) 。给你设的间隔最多加 10% 随机偏移。设 10 分钟循环,可能 9:12、10:48、9:36 触发。为什么?如果一千个开发者都设"每 10 分钟",就会在同一秒打 API 形成尖峰。抖动把负载摊平------和指数退避是同一个原理,只是预防性地提前用了。
  • 守护机制。72 小时硬上限、1 分钟最小间隔、可被组织整体禁用。这些护栏说明 Anthropic 很清楚:自治循环一旦失控,代价是实打实的钱。

别和 /goal 搞混

讲到 /loop 就必须提 /goal,它俩是不同的循环原语,极易混:

/loop /goal
驱动方式 节奏驱动(按间隔重跑) 条件驱动(跑到条件为真)
停止 到期或按 Esc 一个独立小模型每轮判断"是否完成"
适用 周期巡检、摘要、轮询 "测试全过 + lint 干净"这类可验证终态

/goal 有个精妙设计:判断"是否完成"的是另一个小模型,不是干活的那个。这是把"制作者/检查者分离"应用到了停止条件本身------防止 agent 自己评自己"做完了"而草草收尾。一个管"怎么干",一个管"够了没",分工明确。


三、实战:什么情况用、怎么用、怎么不踩坑

理论清楚了,回到地面。这一节是可操作的部分。

一条判断标准:三个问题

要不要用 /loop?问自己三个问题:

  1. 这事需要重复吗? ------ 不需要,用普通 prompt 就行。
  2. 每次需要记得上次的状态吗? ------ 不需要,用外部 cron 包 claude -p 就行。
  3. 我会一直开着这个会话吗? ------ 不会,别用 /loop,用 GitHub Actions

三个都"是",才用 /loop。最后一条尤其重要------记住它是会话级的,关盖子就停。

五个能直接照抄的例子

例子 1:盯着 CI 直到变绿(最经典)

text 复制代码
/loop 5 minutes 检查当前分支的 CI 状态,如果失败,读错误日志、修复、提交,直到变绿

推了代码就挂上,然后去写别的。可能修一次还红------没关系,它记得上次试过什么,会换思路再来。等你回来,大概率已经是绿的。

例子 2:挂一夜修测试(高阶用法)

text 复制代码
/loop 10 minutes 跑 npm test,把失败的测试逐个修复并提交,每轮只处理一个,避免改动太大

注意最后半句------"每轮只处理一个" 。这是用 /loop 最重要的防坑技巧。不加这句,agent 一轮可能想修全部,改得乱七八糟;明确"每轮一个",它就稳扎稳打。睡一觉醒来,提交历史里往往已经安静地修掉了好几个,每个独立提交,干净利落。

例子 3:定时汇总到文件(配合 MCP 连 GitHub)

text 复制代码
/loop every 2 hours 拉取最近 commit 和 PR 更新,追加汇总到 DAILY.md 的新日期段落下

每次拉最新状态,累积写进文件。它记得"已经写过哪些",不会重复。

例子 4:等 PR 评论

text 复制代码
/loop 15 minutes 检查我的 PR #123 的新评论,如果有,按评论意见修改代码并回复说明改了什么

提了 PR 去忙别的,reviewer 一留意见,它就开始处理。同样靠"记得回复过哪些"避免重复。

例子 5:可验证终态用 /goal

text 复制代码
/goal 跑到所有测试通过、lint 干净,然后停下告诉我

这个要用 /goal 不是 /loop------因为你要的是"跑到条件满足",不是"按时间重复"。

防坑清单

踩过的坑,都在这儿:

怎么避
agent 一轮干太多 prompt 里写"每轮只处理一个 / 只改一个文件"
它过早说"完成了" 用可验证条件("测试通过才算完"),别用模糊目标
烧 API 1 分钟间隔跑 8 小时 = 480 次调用。先用 5-10 分钟间隔试水
状态丢失 让它把进度写进磁盘文件 (DAILY.md、进度 markdown)
想关机还在跑 /loop 做不到,换 GitHub Actions

最后一条尤其要强调------状态写磁盘 。长跑的 agent,每次迭代都会"忘"一些东西(上下文有上限)。所以重要的进度、待办、决策,必须落在一个 markdown 文件里 ,而不是只存在对话上下文中。这是 loop engineering 的核心原则之一:agent 会忘,但仓库不会。


四、其他 Agent 有 loop 吗:一张图看清能力光谱

如果你不用 Claude Code,自然要问:别的工具有这能力吗?用第一节的三层模型来丈量,答案很清晰:

text 复制代码
能力强 ●━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━● 能力弱/无
  Claude Code       Codex CLI       OpenCode        Reasonix      Aider      Gemini/Cursor
  (原生 L3          (L2 自治        (L3 靠插件)     (L2 为常驻     (L2 局部)   (L1, 需自配 cron)
   定时+持久)        数小时)                          而生)

关键结论是那句加粗的话:L3 这一层,目前只有 Claude Code /loop 做成了原生的、一等公民。 其他工具的处境各不相同:

  • Codex CLI ------ 自治冠军。OpenAI 官方专门有 long-horizon task 指南,它的 Goal mode 能连续跑数小时无需监督。但偏向 L2(单会话长跑到完成),不是 L3 那种"定时重复 + 跨迭代记忆"。
  • OpenCode ------ 靠插件生态实现 L3opencode-scheduler 用 OS 原生调度器(macOS 的 launchd、Linux 的 systemd),opencode-cron 用 SQLite 持久化任务、跨会话重启仍存活。最大差异:Claude 把 loop 做成原生命令 (会话级),OpenCode 走插件路线(可跨会话持久,但要额外装)。
  • Reasonix ------ Loop 是它的存在意义 。还记得它的北极星吗?"便宜到能一直开着"。它没有"定时"概念,但整个架构(cache-first 三段式、99% 缓存命中)就是为 L2 常驻而生的------别人 loop 会烧钱,它 loop 是设计目标。一句话概括:Claude 的 loop 是"调度",Reasonix 的 loop 是"经济学允许的常驻"。
  • Aider ------ 局部的执行 loop。它有个"命令失败自动喂回对话"的机制(跑到成功为止的雏形),但没有时间调度、没有跨迭代持久记忆。
  • Gemini CLI / Cursor ------ 没有内置 loop。要定时,只能外部 cron 包,每次冷启动、上下文清零。

所以如果你要的是"定时重复 + 跨迭代记忆",目前 Claude Code 是唯一原生选择。其他场景各有各的解:Codex 适合长时自治,OpenCode 靠插件补,Reasonix 靠哲学(可负担的常驻),预算有限要跨重启就用 GitHub Actions 包任何 agent。


五、真正的力量:Loop Engineering 的五块积木

到这里你可能以为 /loop 就是全部了。不。/loop 单独用,价值其实有限------它真正的力量,在于它和 Claude Code 其他原语的无缝组合。

Boris Cherny 那句"我的工作是写循环"之所以成立,是因为一个完整的循环系统由多块积木拼成。我借用 Addy Osmani 的框架,把它归纳成五块(Claude Code 全有):

积木 作用 Claude Code 对应
Automations 按节奏发现/分流 /loop/goal、hooks、cron
Worktrees 并行不互踩 git worktree--worktree
Skills 固化项目知识 SKILL.md
Connectors 接入外部工具 MCP servers、plugins
Sub-agents 制作者/检查者分离 .claude/agents/ 里的 Task subagents

还有第六块,是隐形的粘合剂------State:一个 markdown 文件(或看板)记"做了什么、下一步是什么"。因为长跑 agent 每次都会忘,所以记忆必须落在磁盘上而非上下文里。前面防坑清单强调的"状态写磁盘",就是这一块。

把这六块拼起来,一个完整的循环长这样:

text 复制代码
/loop 每早触发 → 调用 triage skill(读 CI 失败/issue/commit)
   → 写发现到 markdown 状态文件
   → 对每个待办开隔离 worktree(互不干扰)
   → sub-agent A 起草修复,sub-agent B 对照 skills + 测试审查
   → 经 MCP 开 PR、更新 ticket
   → 状态文件记下进度,明早接着干

看到差别了吗?/loop 只是这套系统的心跳。 真正让它强大的,是 skills 提供的项目知识、worktree 提供的并行隔离、sub-agents 提供的制作者/检查者分离、MCP 提供的外部连接、以及状态文件提供的跨迭代记忆。这五块积木缺一不可,/loop 只是把它们串起来的节拍器。


六、回到那两个下午

文章开头那两个场景,现在有解了。

CI 红了不用干等,挂个 /loop,它会自己试到绿;测试要批量修,挂个 /loop 让它每轮一个,睡一觉就清掉了。

但比这两个具体用法更重要的,是你刚走过的这段认知旅程:

  • 你知道了循环分三层------L1 执行、L2 自治、L3 调度,而 L3 才是"真 loop"。
  • 你知道了 /loop 妙在"带记忆的定时",而不是闹钟;它背后是 cron 转换 + 会话内调度 + 抖动 + 守护栏杆这一整套设计。
  • 你知道了各 Agent 的 loop 能力天差地别------Claude 原生、Codex 长时自治、OpenCode 靠插件、Reasonix 靠经济学、其余靠外部脚本。
  • 你知道了真正的力量来自五块积木的组合,/loop 只是心跳。

而这一切指向同一个范式转变:你真正的角色,正在从"prompt agent 的人",变成"设计循环去 prompt agent 的人"。 /loop 是这个转变的第一个工具,但它不会是最后一个。

回到开头那句话:那些被 CI 碎掉的下午,本质都是"循环问题用单次方式解决"的代价。当你开始用循环思维重新组织工作流,你会发现,很多曾占用你注意力的琐事,都可以交给一个会自我延续、会记忆、会协作的循环系统去处理。

学会写循环,而不是写 prompt------这才是 2026 年值得掌握的新基本功。

相关推荐
陌路遥1 小时前
别被 Demo 骗了:当前 Agent 的"自主规划",LLM 其实一句都没懂
agent
用户208046804561 小时前
文本分块策略与最佳实践实战指南
人工智能
码哥字节1 小时前
给 Claude Code 布置任务,它为什么总是理解错——我找到原因了
agent
阿耶同学2 小时前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
一tiao咸鱼2 小时前
Ai 相关 7月1日学习
前端·agent
用户208046804562 小时前
文档解析实战:PDF、Word 与 HTML 的清洗提取指南
人工智能
weiwin1233 小时前
MAF 入门(6):人工审核(HITL)
agent
得物技术3 小时前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
HokKeung3 小时前
飞书 lark-cli 如何存储 tenant_access_token 和 user_access_token
人工智能·go