Claude Code之父的宣言:“我不再Prompt了,我的工作就是写循环”
一句话总结:Claude Code 之父 Boris Cherny 说“我不再 Prompt 了,我的工作就是写循环”——本文把这句话拆成三层含义、把他的多智能体编排画成图,并给出一份今天就能抄的目标定义模板。
导读:引爆 Loop Engineering 的推文里,最狠的一句话其实出自 Claude Code 负责人 Boris Cherny。这篇我们把他的工作流拆开看:当造出全球最火编码智能体的人自己都不再手动提示了,我们的工作方式到底该跟着怎么改?我会把那句话拆成三层、把他的 15 智能体编排画成图,最后给你一份今天就能抄的目标定义模板。
本文导航
- 一、先拆那句话:三层含义
- 二、说这话的人是谁
- 三、“Vanilla工作流”:15个并行智能体的编排
- 四、从"写代码的人"到"写循环的人"
- 五、我们能抄的作业
- 小结
- 下节预告
一、先拆那句话:三层含义
把 Cherny 那句原话再完整摆一次:
“我不再提示 Claude 了。我有一堆循环在跑,它们负责提示 Claude、负责想下一步干什么。我的工作,就是写循环。”
第一次读,很多人只听到了"不提示了"四个字,然后得出结论:哦,提示词工程死了。这是误读。我自己第一遍也差点掉进去——当时脑子里蹦出来的念头是"那我这两年攒的提示词库白攒了?"后来反复读了三遍,又对照他实际的工作方式,才发现这句话的信息密度高得吓人。我建议你按三层来拆:
第一层:不是不交流,是不"逐轮"交流。Cherny 显然还在跟 Claude 沟通——但沟通的载体从"一轮轮的聊天消息"变成了"一次写好、反复运行的循环定义"。信息量没变少,甚至变多了,只是打包方式变了:从流式对话,变成了一次性交付的系统设计。你可以把它类比成从"打电话指挥装修"改成"出装修图纸"——后者显然更费脑子,但一次交付,反复生效。
第二层:提示词没有消失,而是沉到了循环的骨架里。循环里的每个组件——验收条件、技能文件、子智能体指令、hooks——本质上全是提示词,只是它们不再由你在聊天框里手打,而是固化成了可版本管理、可复用、可交接的资产。提示词工程的全部积累,一点都没浪费。我自己那两年攒的提示词库,后来是怎么处理的?三分之一变成了 AGENTS.md 的条目,三分之一变成了 Skills 文件,三分之一变成了验证器的失败信息模板。一个字都没扔。
第三层:也是最有分量的一层——"我的工作就是写循环"是一份岗位说明书。这句话等于宣告了一个新工种的存在——loop architect,循环架构师:不负责驾驶,负责设计交通系统;不负责生产每一行代码,负责让"生产代码的过程"本身可以自动化、可验证、可信任。
为了让你不把这三层读混,我把误读和正解并排放:
| 流行误读 | 实际含义 | 差别在哪 |
|---|---|---|
| “提示词工程死了” | 提示词沉入循环骨架,变成可管理资产 | 从手艺变成资产 |
| “以后不用懂AI了” | 循环设计必须更懂AI的行为边界 | 要求反而更高了 |
| “AI全自动驾驶了” | 人退到门禁点,但没退出流程 | 驾驶权后移,不是消失 |
| “写循环就是写while” | 骨架是while,重点是验证、记忆、预算 | 10%是循环,90%是工程 |
| “这适合所有任务” | 只适合可机器验证的任务 | 选错任务必翻车 |
踩坑提示:我见过有人把"我的工作就是写循环"理解成"我要写一个无限 while 让 AI 自己跑",然后一夜烧掉几百块 token,产出三个互相打架的分支。没有终止条件、没有验证器的 while,不叫循环,叫 doom loop。第3章第9节专门收拾这种事故。
二、说这话的人是谁
评判一句话的分量,得看说话的人站在哪。
Boris Cherny 这个人的履历有个特别有意思的细节:Claude Code 是他2024年9月的 side project。一个工程师的业余项目,一年多以后变成了什么?几个数字:
- ARR超过25亿美元,贡献 Anthropic 约五分之一收入(2026年中口径)
- 开发者满意度 91%,JetBrains 2026年4月调查里46%的开发者把它选为"最受喜爱"的 AI 编程工具(Copilot 同项只有9%)
- 企业订阅用户自年初增长四倍,企业客户贡献过半收入
- 平均会话 23 分钟、47 次工具调用——所有智能体工具里跑得最"深"的那一个
硅谷有人把 Claude Code 称作"万亿美元级别的小项目",话虽夸张,但一件事是确定的:这个星球上每天驱动 Claude Code 次数最多的人之一,就是它的负责人本人。他对"怎么用好智能体"的判断,是用几亿美元营收和几百万用户的真实行为喂出来的。所以当这个人在 X 上说"我不再提示了",这不是观点,这是生产环境的运行报告。
我把他的产品成绩单和这句话的可信度做了一张对照表,你可以自己掂量:
| 事实 | 数字 | 对那句话的支撑 |
|---|---|---|
| Claude Code ARR | $25亿+ | 他的工作流背后是亿级营收验证 |
| 全球开发者满意度 | 91% | 他的产品判断被大规模用户认可 |
| 最受喜爱工具得票 | 46% | 使用深度行业第一 |
| 平均会话时长 | 23分钟 | 他面对的正是"长任务怎么管"的问题 |
| 平均工具调用 | 47次/会话 | 手动逐轮驱动在这个量级上根本不可行 |
最后一行其实是最硬的论据:一次会话47次工具调用,你手动一轮轮提示,一轮看一分钟,光看完就要一个小时。换成循环,人只在终点出现。他的工作方式不是哲学偏好,是被数据逼出来的必然。
另外补一个背景:2026年初那段时间,Anthropic 内部公开分享过一批用法细节,随即被 iOS 开发者 Jacob Bartlett 整理成文,标题里那个词后来流传开了——“vanilla”(原味)工作流。原味的意思是:没有任何神秘技巧。这一点我们下一节展开。
三、“Vanilla工作流”:15个并行智能体的编排
那 Cherny 的循环到底长什么样?
2026年2月,Jacob Bartlett 写过一篇流传很广的文章,专门复刻 Cherny 公开分享过的用法——他称之为“vanilla”(原味)工作流:没什么炫技的自定义提示词,就是15个并行智能体之间的编排。我结合 Osmani 文章里的循环解剖,把这套工作流的骨架还原成下面这张图:
看着挺唬人,我逐个节点给你翻译成人话:
节点1:人是目标定义者和门禁。15个智能体没有一个是"自由"的——每个都拿着一个写清楚的成功态、边界和约束。Cherny 的输入不再是"帮我改一下登录页",而是"auth 模块测试全绿、不改测试文件、改动范围限定src/auth/"。目标写得越硬,循环跑得越野。
节点2:worktree 是并行的前提。15个智能体同时改一个仓库,物理上靠的是 git worktree——每个智能体一个独立的工作目录和分支,谁也踩不到谁的文件。没有 worktree,并行就是灾难现场:三个智能体同时改同一个文件,合并时全是冲突,一个晚上白跑。
节点3:验证层是"数字质检员"。每个智能体交付之前,先过一道确定性检查:测试跑不跑得过、编译干不干净、lint 有没有红灯。这一步不信任任何模型的自我评价——跑不过就打回去重来,符合我们第7章要讲的"确定性信号喂养"。
节点4:审查是另一个智能体,且永远不是干活的那个。干活的模型给自己打分,会"过于宽容"——这是 maker/checker 分离的铁律。审查者用不同的上下文、甚至不同的模型,专职找茬。Osmani 说的"写代码的那个模型太会给自己评卷了",在这里被制度性解决。
节点5:人只在 PR 处出现。整条流水线的终点是 Draft PR——注意是Draft。人审的是结果,不是过程。这就是"编排税":worktree 能消除机械冲突,但你的审查带宽永远是并行度的上限,15 个智能体产出的 diff,最终还是要人一格格看得过来。
再把"一个晚上"画成时序图,你就知道人的介入点有多少了:
数一下:人只出现了两次,一次下发目标,一次终点审查。中间所有的"发现不对、打回、重试、再验证",全部由系统自己消化。这就是"我的工作就是写循环"的字面意思。
踩坑提示:我复刻这套编排时踩过的最大坑是"并行度跟着野心走"。一开始我同时开了8个 worktree,结果晚上11点半收到一堆通知,凌晨一点爬起来手工裁决三个互相重叠的任务——比手动写还累。后来我定了条铁律:并行度 = 我早上能认真审完的 diff 数量。对我目前来说是3。这条铁律第10章还会细讲。
四、从"写代码的人"到"写循环的人"
我特别想聊一个细节:Cherny 是从写代码的人,变成写循环的人的——而且是被自己造的工具改变的。
这种角色迁移有点像当年从"手写汇编"到"写编译器"的那批人。你会发现一个残酷又迷人的对称性:
| 手写汇编者 | 手动提示者 | |
|---|---|---|
| 工具成熟后 | 升级为高级语言工程师/编译器作者 | 升级为 Loop 架构师 |
| 没跟上的人 | 沦为"人力编译器",被编译器淘汰 | 沦为"人肉提示器",被循环淘汰 |
| 新角色的杠杆 | 一个编译器服务所有程序 | 一个循环服务所有任务 |
| 新角色的核心能力 | 语义理解、优化、正确性证明 | 目标设计、验证设计、系统判断 |
别误会,我不是说手写提示词会像汇编一样"消失"——汇编到今天还活在内核和嵌入式里,手动提示也会永远活在调试和探索里。我说的是杠杆中心发生了迁移:你每一次和智能体的交互,都在回答一个隐含的问题——“这件事是我这辈子手动做最后一次,还是设计个循环让它自动做无数次?”
我自己对这个转变有个体感很强的观察:工作时长没变短,但单位时间的产出曲线完全变了。以前我一个晚上产出的是"修好的一个 Bug",现在我一个晚上产出的是"一个能每晚自动修 Bug 的循环"。前者是一次性的,后者是复利的。做循环的人赚的是复利,做提示的人赚的是计件工资。
Osmani 对此有个我很喜欢的补充:循环改变工作,但不会把你从工作中删除。验证仍然归你,理解仍然归你,判断仍然归你。用他的话说——“Build the loop. But build it like someone who intends to stay the engineer, not just the person who presses go.”(建循环,但要以一个打算继续当工程师的方式去建,而不是以一个只想按下启动键的人的方式。)
这句话我建议你抄下来贴在显示器上。因为循环最危险的诱惑,就是让你误以为"理解"可以外包。循环会放大理解,也会放大无知——你深刻理解的工作被循环加速,你不理解的工作被循环批量制造垃圾。这是我在第16章"理解力腐化"一节要专门敲的警钟。
五、我们能抄的作业
Cherny 的工作流里,最值钱的启示恰恰是它的"vanilla"(原味):
- 不追求神奇的提示词,追求普通的编排。15个智能体没有任何一个用了什么神秘 prompt 技巧,赢在结构:目标清楚、并行隔离、验证兜底、审查分离。
- 先跑通一条线,再复制十五条。这套编排是"一个目标+一个worktree+一个验证器"的简单模式 × 15,不是15种不同玩法的马戏团。
- 并行度跟着审查带宽走,不跟野心走。Bartlett 复刻后的结论和我自己的体验一致:瓶颈从来不是机器,是你审 diff 的耐心。一开始你有2个并行就很好了。
- Draft 状态是礼貌也是安全带。所有无人值守的产出,默认停在 Draft——把"最后说yes"的权利留给人,是这套工作流能让人信任的前提。
那具体到今天,你能抄的第一份作业是什么?把你的任务定义从"一句话需求"升级成"结构化目标"。我把自己的目标定义模板写成了 pydantic 模型——它同时也是校验器,字段不全直接报错,逼着我把话说完整:
# goal_spec.py —— 结构化目标定义模板(Python 3.12 + uv)# 运行:uv run goal_spec.pyimportloggingfrompydanticimportBaseModel,Field logging.basicConfig(level=logging.INFO,format="%(asctime)s %(levelname)s %(message)s")log=logging.getLogger("goal_spec")classGoalSpec(BaseModel):"""循环的'任务书':目标、约束、验收条件三件套缺一不可"""task:str=Field(min_length=10,description="要做什么,一句话说清")success:list[str]=Field(min_length=1,description="可机器验证的验收条件")constraints:list[str]=Field(default_factory=list,description="不许碰的边界")budget:str="最多10轮迭代 或 2小时"if__name__=="__main__":spec=GoalSpec(task="修复登录模块的空指针异常",success=["pytest tests/auth 全绿","ruff check src/auth 无错误"],constraints=["不改测试文件","改动范围限定 src/auth/"],)log.info("目标已定义,可交付给循环执行")print(spec.model_dump_json(indent=2,ensure_ascii=False))控制台输出:
2026-06-21 20:15:33 INFO 目标已定义,可交付给循环执行 { "task": "修复登录模块的空指针异常", "success": [ "pytest tests/auth 全绿", "ruff check src/auth 无错误" ], "constraints": [ "不改测试文件", "改动范围限定 src/auth/" ], "budget": "最多10轮迭代 或 2小时" }注意success字段我用的是min_length=1——没有验收条件的目标,连模型都过不了校验,更别说交给循环了。这个小约束后来救过我好几次:每次我想偷懒写"优化一下性能",pydantic 就会把这种没法机器判定的东西顶回来,逼我把它翻译成"benchmark 耗时小于 100ms"。
既然说到验收条件,我把"写目标"这件事再往下钻一层。验收条件的写法直接决定循环的成败,我把常见写法做了张对照表——左边是我踩过的坑,右边是后来的改法:
| 模糊写法(循环必翻车) | 硬化写法(循环能跑) | 硬化在哪 |
|---|---|---|
| “优化一下性能” | “benchmark 耗时小于100ms,功能测试全绿” | 换成机器可判定的数字 |
| “代码要优雅” | “ruff check 零告警,圈复杂度小于10” | 换成工具可测量的规则 |
| “别破坏现有功能” | “改动前后全量测试结果一致,diff 限定在 src/auth/” | 换成可执行的回归检查 |
| “写得完整一点” | “文档覆盖率100%,每个公开函数都有示例” | 换成可统计的覆盖率 |
| “小心一点” | “不改测试文件、不动配置文件、不碰锁文件” | 换成可拦截的禁止项 |
你会发现规律只有一条:把形容词换成数字,把期望换成检查命令。循环不认识"优雅",只认识退出码。我后来养了个习惯,写完 GoalSpec 后自问一句:"如果我是机器,我能不问任何人就判定它完成了吗?"能,就发车;不能,就回去改。
这些作业我们后面会逐个变成代码:worktree 编排在第10章、验证器在第7章、审查分离在第7章第4节、目标设计在第3章第4节。现在你只需要记住结构。
最后给你一份今天就能执行的三步清单,成本不超过半小时:
| 步骤 | 动作 | 预计耗时 | 产出 |
|---|---|---|---|
| 1 | 挑一个你每周都要做的重复任务 | 5分钟 | 一个候选循环 |
| 2 | 用 GoalSpec 三件套把它写成结构化目标 | 15分钟 | 一份任务书 |
| 3 | 跑一轮"执行→验证→打回→重跑",哪怕手动模拟 | 10分钟 | 你的第一条循环轨迹 |
跑完这三步,你对"循环"的理解就会从概念变成肌肉记忆。别小看这半小时——我在调研里见过的"上车快"的人,无一例外都是先跑通一条最小的线,再谈架构。
踩坑提示:抄作业最容易抄歪的地方是"抄形式不抄约束"。我见过有人照搬了15个并行 worktree 的形式,却没抄"不改测试文件""改动范围限定目录"这类约束,结果循环为了过测试直接改断言——测试全绿,业务逻辑全坏。约束不是仪式,是防作弊的锁。
小结
- Cherny 的宣言要拆三层读:不逐轮交流≠不交流;提示词没有死而是沉进了循环骨架;"我的工作就是写循环"是一份新岗位(Loop架构师)的说明书
- 说话人的分量:Claude Code 从 side project 到 $25亿 ARR,他是全球最深度使用编码智能体的人之一——这句话是运行报告,不是观点
- Vanilla 工作流五节点:人定目标 → worktree 并行 → 确定性验证 → 独立审查 → Draft PR 门禁;一个晚上人只出现两次
- 角色迁移的对称性:像从手写汇编到写编译器——杠杆中心从"做事"移到"设计做事情的系统",从计件工资到复利
- 能抄的作业:普通编排胜过神奇提示词;先跑通一条线再复制十五条;并行度跟着审查带宽走;约束是防作弊的锁
- 今天就能动手的一步:把任务定义升级成 GoalSpec——目标、约束、验收条件三件套,缺一项就别启动循环
下节预告
讲了两天"循环"这个抽象概念,下一篇我们落地到一个所有人都能秒懂的场景对比:两种晚上——手动提示者守着聊天框熬到一点,Loop 架构师十点关机早上收 PR。我会用流程图逐帧对比这两种晚间,然后回答那个最关键的问题:无人值守凭什么敢被信任?三个前提条件,一个都不能少。
如果觉得本文对你有帮助,欢迎点赞、收藏、关注三连!
本系列持续更新中,120篇循环工程实战通关,关注不迷路~