一场正在发生的范式转变:Loop Engineering(循环工程) 声明本文是对 Addy Osmani 文章 Loop Engineering2026 年 6 月7 日发布的独立解读与延展分析。文中核心概念如循环工程六大组件框架、“理解债务”、认知投降等属于原作者 Addy Osmani的原创思想本文通过重新组织结构、补充原创图解、加入个人分析视角进行二次创作。所有图解均为作者独立绘制。Anthropic Claude Code 负责人 Boris Cherny 最近说了这样一句话“我不再直接提示 Claude 了。我有正在运行的循环来提示 Claude 并弄清楚该做什么。我的工作是编写循环。”开发者工具先驱 Peter Steinberger 也表达过类似观点“你不应该再亲自提示编程代理了。你应该设计循环来提示你的代理。”这不仅仅是一句口号。过去两年里我们与 AI 编程代理的交互模式是这样的你写提示 → AI 执行 → 你读结果 → 你再写提示。代理是工具你全程掌控它一轮接一轮。但现在一个新的范式正在浮现——循环工程Loop Engineering。你不再亲手驱动每一轮而是构建一个小型系统让它自己发现工作、分配任务、检查结果、记录进度、决定下一步。你不是在提示代理你是在设计提示代理的系统。上图清晰地展示了两种范式的区别——左侧旧范式你作为中央枢纽手动驱动每一轮交互带宽消耗大右侧新范式系统自主循环运行你的角色转变为设计循环 审查结果循环需要什么六大核心组件Addy Osmani 提出了一个极简框架“一个循环需要五个东西再加一个地方记住东西”。这六个组件构成了循环工程的完整基础设施组件在循环中的角色如果缺失会怎样自动化Automations定时触发发现和分类任务循环不会启动一切需要手动工作树Worktrees隔离并行功能避免冲突多个代理互相覆盖代码技能Skills固化项目知识每次运行读取每次从零推导项目约定插件/连接器Plugins连接 GitHub、Linear、Slack 等真实工具循环只能告诉你该做什么不能替你做子代理Sub-agents实现与验证分离写代码的人自己审查自己的代码状态存储State跨会话记忆进度每天重新开始重复已完成的工作下面这张架构图展示了组件之间的协作关系左侧三个「基础设施组件」为中央子代理提供支撑右侧状态存储实现跨会话记忆。虚线箭头代表反馈闭环——状态文件中的信息会反哺给下一轮自动化触发形成持续改进的飞轮。两种关键的循环原语自动化模块提供了两种核心运行模式/loop按固定频率重新运行如每天早上 6 点/goal持续运行直到你设定的条件为真每轮运行后由独立的第三方小模型检查是否完成/goal的设计哲学很值得玩味——写代码的代理不负责给自己评分。这种制衡机制正是循环能在你不在场时仍然可信的关键。“代理会遗忘仓库不会”关于状态存储原文中有一句话让我印象深刻“The model forgets everything between runs so the memory has to be on disk and not in the context. The agent forgets, the repo doesn’t.”代理每次会话都是冷启动的会遗忘之前的一切。所以循环的进度、尝试记录、审查结果必须持久化到磁盘Markdown 文件或 Linear 面板。没有状态存储循环就像一个每天醒来都失忆的人。关于技能Skills消除意图债务代理每次会话开始时会填补你意图中的空白并做出自信的猜测——这被称为意图债务Intent Debt。技能的作用就是将意图显式编码项目约定、构建步骤、“因为我们出过事故所以不这样做”——写一次代理每次运行时读取。没有技能循环每次从零推导项目有了技能它会不断累积经验。一个完整循环的一天让我们用一个真实场景来串联所有组件。以下是一个生产环境中循环的典型运行流程注意中间的并行阶段06:10——工作树 A 和工作树 B同时运行工作树 A子代理负责起草修复代码读取技能文件遵循项目约定工作树 B子代理 B 独立审查代码不信任子代理 A 的产出这就是实现与验证分离的核心价值。两个代理在独立分支上工作互不干扰。到了早上 9 点当你打开电脑时循环已经完成了大部分工作。你的任务是审查已经开好的 PR处理分类收件箱中循环无法自动完成的复杂事项更新技能文件让明天的循环更聪明工具无关的抽象层一个关键的洞察循环的底层结构已经超越了单一工具的边界。无论是 OpenAI 的 Codex 还是 Anthropic 的 Claude Code六大组件的映射几乎一致组件CodexOpenAIClaude CodeAnthropic自动化Automations 选项卡、/goalcron 定时、/loop、/goal、hooks工作树内置每线程工作树git worktree、--worktree标志技能Agent SkillsSKILL.mdAgent SkillsSKILL.md插件ConnectorsMCP 插件分发MCP 服务器 插件子代理TOML 定义在.codex/agents/定义在.claude/agents/状态Markdown 或 LinearMarkdownAGENTS.md或 Linear两者都使用SKILL.md和MCP——为其中一个编写的技能和连接器通常可以直接在另一个中使用。循环解决不了的三个问题循环改变了工作方式但它不会删除你。Addy Osmani 在文中用了大量的篇幅提醒读者随着循环变得更强三个问题反而变得更加尖锐。1. 验证仍然是你人类的责任无人值守运行的循环也在无人值守地犯错。将验证子代理与制造子代理分离正是为了让循环的完成了这句话更有意义——但即便如此完成只是一个声明不是证明。“Your job is to ship code you confirmed works.”2. 理解债务Comprehension Debt循环越快地发布你没有亲手写的代码代码库里存在的东西和你实际理解的东西之间的差距就越大。一个顺畅的循环只会让理解债务增长得更快——除非你主动阅读循环产出的每一行代码。3. 认知投降Cognitive Surrender——最危险的陷阱当循环自动运行很容易就不再有自己的判断只是接受它给出的一切。Addy 将这称为认知投降。设计循环当你带着判断去做时是解药当你用它来避免思考时是催化剂——同样的行动相反的结果。这一点尤其值得警惕。两个人可以构建完全相同的循环但得到完全相反的结果A 用它在深刻理解的工作上加速B 用它来完全避免理解工作。循环不知道区别——你知道。我的思考在我看来循环工程这篇文章之所以重要不在于它提出了什么全新的技术——六大组件大多已经在现有产品中存在。它的价值在于提供了一个认知框架让你从提示技巧的思维层面升级到系统设计的思维层面。几个值得深思的点第一杠杆点在转移。一年前要构建类似的循环你需要写一堆 bash 脚本并持续维护。现在这些组件直接内置于产品中。门槛降低意味着更多人会开始尝试但也会更多人陷入认知投降。第二工程师的角色不会消失但会升级。循环设计比提示工程更难而不是更容易。你需要同时具备系统思维设计循环、领域知识编写技能和工程判断力审查结果。这不是按下开始按钮等结果的工作。第三Token 成本是隐形门槛。文中提到的子代理模式——每轮都有独立的探索、实现、验证代理——意味着 Token 消耗可能是传统模式的数倍。这对个人开发者和小团队来说是一个现实约束。第四直接提示仍然有效。不要把循环工程教条化。有些场景下直接提示代理反而是最高效的方式。循环工程是工具箱中的一件新工具不是要替换所有旧工具。总结最后用 Addy Osmani 的那句话作为收尾Build the loop. Stay the engineer.构建循环但仍然做个工程师。不是像只负责按下开始按钮的人而是像一个打算继续深刻理解代码的人。代理会遗忘仓库不会——你设计的循环、编码的技能、写入的状态文件这些才是跨越时间和会话持久存在的东西。循环工程不是终点它是一个工程师在 AI 时代的新起点。