WTF Is a Loop?
AI 编程的最大争议
一条六个词的推文让220万人争论"Loop"到底是什么。Peter Steinberger vs. Boris Cherny——AI 编程从"手动 prompt"到"设计循环"的范式转移。
全文翻译
Matt Van Horn (@mvanhorn) 原文翻译
来源:X Article · 4403 likes · 2.4M views · 2026年6月8日
本周 AI 编程圈被引用最多的一句话只有六个单词,但几乎每个说这句话的人都无法定义它。一条推文本周让整个时间线陷入疯狂,所以我对所有人争论的这个词跑了 /last30days(最近30天搜索)。答案是真实的,它有五年的演进脉络,而最终的结论是:Loop(循环),而不是模型,现在是成本最高的部分。
"Here's your monthly reminder that you shouldn't be prompting coding agents anymore. You should be designing loops that prompt your agents."
"这是你每月的提醒:你不应该再手动 prompt 编程 agent 了。你应该设计 loop 来 prompt 你的 agent。"
— @steipete,2026年6月7日
这就是所有人都在引用的那句话。最有说服力的回复来自 Varadh Jain,他问了唯一重要的问题:这在实践中是什么样的?而让整个氛围定调的回答来自 Matthew Berman:
"nobody knows but him and boris." — "除了他和 Boris,没人知道。"
— @MatthewBerman
这才是真正的故事。不是 loop 是未来,而是一个六个词的短语获得了200万浏览量,而转发它的人在评论区争论它到底是什么意思。我没有翻白眼,因为我每天晚上都会运行一个 loop,在我睡觉的时候跨大约30个开源仓库提交 PR。90秒的研究搜出了15个 Reddit 帖子、21条 X 推文,以及一个令人不安的模式:AI 编程圈最响亮的想法,大多数重复它的人无法解释。
"It's not ralph/goal loops, that's old hat by now. It's probably some kind of continuous orchestration loop that oversees other threads/agents."
"这不是 ralph/goal loop,那已经是旧帽子了。这大概是某种持续编排循环,监督其他线程/agent。"
— @trashpandaemoji
Loop 到底是什么
Boris Cherny 在2024年9月作为副项目创建了 Claude Code。据报道,它现在支撑着 GitHub 上接近4%的所有公开提交。6月2日,在 WorkOS 主办的 Acquired Unplugged 活动上,他给出了关于 loop 最干净的定义:
"Now it's actually leveled up to the next wave of abstraction where I don't prompt Claude anymore. I have loops that are running. They're the ones that are prompting Claude and figuring out what to do. My job is to write loops."
"现在它又升级到了下一波抽象层次,我不再 prompt Claude 了。我有 loop 在运行。是它们在 prompt Claude 并决定该做什么。我的工作是写 loop。"
— Boris Cherny,WorkOS Acquired Unplugged,2026年6月2日
大白话版本:Loop 是你写的一个小程序,它替你 prompt 编程 agent,读取它产出的内容,判断是否完成,如果没有,就再次 prompt 它。你不再是循环里面那个打字输入 prompt 的人。你变成了 loop 的作者。模型变成了一个子程序。
Boris 把它分成三个阶段。一年前,他靠自动补全手写代码。然后他并行运行5到10个 Claude 会话,逐个 prompt。现在他完全不 prompt 了。他写的是 prompt Claude 的 loop,几百个 agent 读取他的 GitHub、Slack 和 Twitter,决定接下来构建什么。
"In the last 30 days, 100% of my contributions to Claude Code were written by Claude Code. I landed 259 PRs."
"过去30天,我对 Claude Code 的贡献100%由 Claude Code 编写。我合并了259个 PR。"
— Boris Cherny,via Simon Willison,2025年12月27日
他在11月删掉了 IDE,此后再也没打开过。关键微妙之处:他不是说工程师被淘汰了。工作没有消失,它上升了一个海拔——从写代码,变成了写那个写代码的东西。
光谱:从 ReAct 到编排
评论区一团糟,因为"loop"至少隐藏着五种不同的东西。
第一阶段(2022):ReAct 学术 while 循环——模型推理、调用工具、读取结果、重复直到完成。一个模型、一个循环、一个人在旁边看着。
第二阶段(2023):AutoGPT——给了模型一个目标并让它自行 prompt,结果因无限空转什么都没做成而闻名。那次失败种下了数年"agent 是玩具"的论调。
第三阶段(2025.7):Ralph Loop——由 Geoffrey Huntley 发布。一个 bash 单行命令,把同一个 prompt 文件反复喂给 agent。真正创新是纪律性:每次迭代重置锚定文件。Huntley 用它构建了一门编程语言,花费297美元。
第四阶段(2026春):/goal 命令——Codex 和 Claude Code 都发布了 /goal 命令,运行 ralph loop 直到验证器模型确认任务完成。
第五阶段(2026.6):编排 Loop——Boris 和 Steinberger 真正的意思。四个东西变了:Loop 变成工作单元;Loop 开始监督其他 Loop;调度取代人工触发;持久性变得显式化。Ralph 假设你的终端保持打开。2026年的版本假设它不会。
"它只是戴了顶帽子的 cron job"
"Cronjobs have funny re-branding rn." — "Cron job 现在有了好笑的新品牌名。"
这个质疑说对了一半。调度层确实就是 cron。但 cron 从来没有的是中间那个部分——一个模型审视当前状态、决策、执行、检查、再决策。决策权在 agent 手里,不在你手里。诚实的框架是:Loop = cron + 决策者,而有趣的工程是你在那个决策周围包裹的所有东西——确保它不会跑下悬崖。
Loop 现在是成本最高的部分
"Every ai agent i shipped this year is a for-loop, an llm call, and a try/catch around the json parsing. The only thing agentic about it is the anthropic bill at the end of the month."
"今年我发布的每个 AI agent 都是一个 for 循环、一个 LLM 调用、和一个包在 JSON 解析外面的 try/catch。唯一'agentic'的地方就是月底的 Anthropic 账单。"
— @rohit_jsfreaky
Uber 在4个月内烧完了年度 AI 预算后,将工程师使用限额设为每人每工具每月1500美元。一旦模型几乎免费地写代码,成本就转移到了运行它的 loop 上。而生产环境中所有人都害怕的失败模式是那个不停下来的 loop。
所以2026年每一篇严肃的 loop 文章都收敛到同样的三个硬性停止条件:最大迭代次数限制、无进展检测、token/美元预算上限。
不是 Loop。是 Skill。
工程级解读
运行时模型、架构拆解、压力测试
技术内容的工程级深度解读:不只是"是什么",而是"在哪跑、怎么调用、什么场景该用"。
运行时模型:Loop 的系统架构
Loop 的核心不是"循环"本身,而是谁来决策。传统执行流:人写代码 → 代码运行 → 结果验证。Loop 执行流:人写意图 → Loop 调用 LLM → LLM 看状态、决策、执行、验证 → 如果没完再来一次。
| 层级 | 组件 | 职责 | 类比 |
|---|---|---|---|
| 调度层 | cron / /loop | 触发时机:定时、事件驱动、手动 | Cron job 的 cron |
| 编排层 | Loop 程序本身 | 读取状态 → 构建 prompt → 调用 LLM → 解析输出 → 判断终止 | Cron job 的脚本 |
| 执行层 | Claude Code / Codex | 拿到 prompt,写代码,跑测试,提交 PR | CI runner |
| 持久层 | git + 文件系统 | 状态存储、崩溃恢复、审计追踪 | 数据库 |
| 护栏层 | 迭代/预算/无进展上限 | 确保系统可停止 | Circuit breaker |
五阶段演进:每阶段解决的核心矛盾
| 阶段 | 时间 | 核心矛盾 | 解决方式 | 致命缺陷 |
|---|---|---|---|---|
| ReAct | 2022 | LLM 不能用工具 | while 循环 + 工具调用 | 人必须盯着 |
| AutoGPT | 2023 | 人不想盯着 | 给个目标让它自己跑 | 跑飞了停不下来 |
| Ralph Loop | 2025.7 | 上下文无限膨胀 | 每次迭代重置锚定文件 | 单 agent,终端必须开着 |
| /goal 命令 | 2026春 | 不知道什么时候算"做完" | 验证器模型判断完成度 | 单任务粒度 |
| 编排 Loop | 2026.6 | 单 agent 处理不了复杂系统 | Loop 监督 Loop,并发+调度+持久化 | 成本爆炸 |
DIY 对比:手搓版 vs. Boris 级
# 手搓版 Ralph Loop(5行 bash)
while true; do
cat prompt.md | claude --auto-accept 2>&1 | tee output.log
if grep -q "DONE" output.log; then break; fi
sleep 5
done
# Boris 级编排 Loop(概念架构)
cron → trigger_loop()
loop:
state = git.read_state()
prompt = build_prompt(state)
result = llm.call(prompt)
validate(result) → pass/loop/fail
if fail: notify_human()
if loop: state.update(result) → loop
if pass: git.commit(result)
| 维度 | 手搓版 | Boris 级 |
|---|---|---|
| 调度 | 手动启动 | cron + 事件驱动 |
| 并发 | 1个 agent | 200+ agent 并行 |
| 状态管理 | 文件 | git-backed + 崩溃恢复 |
| 终止判断 | grep "DONE" | 验证器模型 + 多轮评审 |
| 护栏 | 无 | 迭代上限 + 预算上限 + 无进展检测 |
| Skill 复用 | 无 | 命名、测试、可复用的 skill 库 |
| 可观测性 | 无 | 日志 + 审计 + 回滚 |
压力测试:三个致命假设
Loop 在生产环境中可靠
dev.to 的分析指出:Agent 看起来在持续工作,文件在生成、进度在报告,但同一类缺陷不断回来。这是 Loop 的本质特征:它把持久性赋予了模型,但模型对"我一直在犯同一个错"没有元认知。
成本从模型转移到编排
Uber 的案例说明成本不是在转移,而是在叠加。200个并行 agent × 100次决策 × 每次 API 调用 = 账单爆炸。真正的成本不是编排本身,而是编排中的每次决策都要烧 token。
Skill 的复利效应普适
Skill 的价值来自复用次数。如果你每天跑30个仓库,Skill 确实能复合增长。但对于大多数开发者,Loop 规模不足以让 Skill 的复利效应显现。
选型决策框架
适合用 Loop
- 多仓库维护 — 类似 Boris 场景,PR 看护是理想用例
- 探索性编程 — 错误成本低,速度优势明显
- 重复性任务 — code review、文档更新、依赖升级
- 开源贡献 — 跨仓库批量 PR
不适合用 Loop
- 个人项目偶尔写码 — 手动 prompt 就够了,工程开销不值得
- 100%精度要求 — 安全、金融等场景,概率性决策与确定性要求冲突
- 团队 CI/CD 密集 — 验证成本高,一条坏 commit 的复合效应可怕
- 简单自动化 — 确定性脚本是更干净的方案
苏格拉底对话
从"省钱"到"省注意力"的认知跃迁
学生:老师,这篇文章说"Loop,而不是模型,是成本最高的部分"。但我用 Claude Code 写代码,每次 token 费用也没多少啊?
老师:你现在是怎么用 Claude Code 的?
学生:打开终端,写个 prompt,它给我生成代码,我检查一下,不满意就再 prompt 一次。
老师:那你就是循环里面的那个人。每次你 prompt、等回复、判断、再 prompt——你自己在充当 Loop 的调度器。你的注意力就是成本。
学生:对,但我的注意力不花钱啊。
老师:是吗?你今天花了多少时间在"看 agent 输出 → 觉得不对 → 重新 prompt"这个循环上?
学生:……可能有几个小时吧。
老师:几个小时注意力,如果你时薪200块,那就是几百块钱。这就是文章说的"Loop 是成本最高的部分"——不是 API 费用,是你守在循环里的时间成本。
学生:所以 Loop 解决的是把我从循环里拉出来?
老师:对。但拉出来之后呢?谁来判断 agent 做对了没有?
学生:另一个模型?验证器?
老师:没错。而那个验证器本身也在调用模型。所以当 Boris 说他有200个 agent 并行运行时,每个 agent 每次决策都是一次 API 调用。200个 agent × 几百次决策 = 你的 token 账单变成 Uber 的噩梦。
学生:那 Uber 怎么解决的?把限额砍到1500刀/月?
老师:那是止血。真正的解法是文章末尾那句——Loop 是管道,Skill 才是资产。如果你的 Loop 每次都在从头开始思考,那它必然贵。但如果它调用的是你预先写好的、经过测试的 Skill,那每次调用的成本就是固定的、可预测的。
学生:所以关键不是"要不要用 Loop",而是"Loop 里面装的是什么"?
老师:精确。一个空的 Loop 就是一个 while-true 包着一个陌生人。一个装了 Skill 的 Loop 才是系统。但还有一个问题文章没深入——
学生:什么?
老师:如果 Loop 在持续运行,一个错误的 Skill 会被反复调用。好的 commit 复合增长,坏的 commit 也一样。你的 Loop 跑一晚上,第二天你的代码库可能面目全非。所以最关键的不是 Loop 本身,也不是 Skill——而是反馈闭环的质量。
学生:所以 Loop = Cron + 决策者 + 反馈闭环 + 护栏?
老师:对。但你觉得这和传统软件工程里的 CI/CD pipeline 有什么本质区别?
学生:……CI/CD 的每个步骤是确定性的,Loop 的每一步都是概率性的?
老师:这就是为什么 Loop 的工程难题不在"让它跑起来",而在"让它停下来,并且停在对的时候"。你觉得什么场景下,概率性决策比确定性脚本更值得?
学生:(思考中……)
个性化洞察
基于你的画像,这跟你有什么关系
QA 工程师背景 · 全栈开发 · 重度 Claude Code 用户 · AI 产品方向
QA 直觉是 Loop 生态中最稀缺的资源
验证(verification)是增长最快的子主题。你对"什么能出错"的直觉恰好是 Loop 护栏层最需要的。DanKornas 说"bad commits compound fast too"——这就是 QA 思维在 AI 时代的价值锚点。把 code review 经验编码成 Claude Code Skill,让 Loop 每次提交前自动调用。
你已经在用 Loop 了
你日常用 Claude Code 做翻译、分析、开发——每次多轮对话本质上就是手动 Loop。文章的价值不在于教你"用 Loop",而在于让你意识到:把反复做的事情,从手动循环变成自动循环。先从翻译解读的 /loop 模板开始。
"Skill 是资产" = 你的知识库体系
/add_wiki、/digest、/ingest 这些 skill 就是文章说的"锋利、经过测试、有命名的 skill"。Loop 只是调用它们的调度器。把现有 skills 包装成 Loop 可调用的原子操作,知识库的复利效应 + Loop 的持久性 = 真正的复合增长系统。
计费单位转移:per token → per loop
AI 编程的计费单位正在从"per token"变成"per loop"。如果你做自己的 AI 产品,考虑按"loop 完成率"而不是"token 消耗"来设计定价。用户不在乎你烧了多少 token,在乎的是 loop 跑完了没有、结果对不对。
确定性 vs 概率性的分界线
@alexanderrX_ 的质疑值得认真对待:"如果输出需要精确,agent 总是正确的抽象吗?"作为架构师,你需要在每个场景下回答这个问题。确定性 > 概率性的场景,脚本永远是更正确的选择。Loop 不是万能药。
幸存者偏差的警示
你看到的都是"259个 PR"的故事。看不到的是那些跑飞了、账单爆了、代码库被污染的案例。在自己项目中小规模实验,先用 /goal 单任务验证,再升级到 /loop 编排。不要一上来就200个 agent 并行。
精选评论
评论区最有价值的声音
正反两面,不站队
@RhysSullivan
"每次看到你的工作流,我都意识到我在这些工具的构建上还有多少要学的,真的每次都让我意识到自己的思维有多窄。"
@edzitron
"你说'我们'的时候指的是几个人?"
这个问题的尖锐之处:它挑战了"一个人就能编排200个 agent"的叙事。
@BeCachet
"笑死,'极其精益'配180万美元的 token 费用。"
@robschaper
"极其精益???你有100+个 Codex 并行运行,你拥有历史上最先进的 DevSecOps 自动化。'精益'"
@PeterBell
"这其中大部分可以用确定性方式完成——把流程、昂贵的工具调用和编排编译成代码,薄切智能层,然后用你能找到的最笨的模型。"
@alexanderrX_
"如果输出需要精确,agent 总是正确的抽象吗?还是简单的自动化脚本仍然是更干净的方案?"
@agrawal_twts
"Loop = 暴力穷举 + Token 最大化冲出一条路。"
@arbidthink
"真正的转变不是把 Claude 当作更聪明的搜索框。而是把它配置为一个持久的认知工作空间。大多数人仍在 prompt 工具。更深的动作是设计一个思考的操作系统。"