当前位置: 首页 > news >正文

一场正在发生的范式转变:Loop Engineering(循环工程)

声明:本文是对 Addy Osmani 文章 Loop Engineering(2026 年 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 点,当你打开电脑时,循环已经完成了大部分工作。你的任务是:

  1. 审查已经开好的 PR
  2. 处理分类收件箱中循环无法自动完成的复杂事项
  3. 更新技能文件,让明天的循环更聪明

工具无关的抽象层

一个关键的洞察:循环的底层结构已经超越了单一工具的边界。无论是 OpenAI 的 Codex 还是 Anthropic 的 Claude Code,六大组件的映射几乎一致:

组件Codex(OpenAI)Claude Code(Anthropic)
自动化Automations 选项卡、/goalcron 定时、/loop/goal、hooks
工作树内置每线程工作树git worktree--worktree标志
技能Agent Skills(SKILL.mdAgent Skills(SKILL.md
插件Connectors(MCP)+ 插件分发MCP 服务器 + 插件
子代理TOML 定义在.codex/agents/定义在.claude/agents/
状态Markdown 或 LinearMarkdown(AGENTS.md)或 Linear

两者都使用SKILL.mdMCP——为其中一个编写的技能和连接器,通常可以直接在另一个中使用。

循环解决不了的三个问题

循环改变了工作方式,但它不会删除你。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 时代的新起点。


http://www.cnnetsun.cn/news/2950982.html

相关文章:

  • 嵌入式Linux IEEE 1588与PME硬件驱动配置与性能调优实战
  • Claude语义压缩层移除:从可控压缩到原始输入的架构迁移
  • 告别焦虑!非技术背景转行AI产品,你只需懂这个就够了!
  • uView-Plus 3.0:如何用Vue 3跨端UI框架解决多平台开发痛点
  • Hermes Agent + 通义千问3.6本地智能体部署全指南
  • JMeter常数吞吐量定时器五大模式详解与实战选型指南
  • Java毕设选题推荐:基于 SpringBoot 的日常查勤登记与核验系统设计与研究 高校学生查勤信息化管理系统的设计与研究【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 生成式AI爆发三年半,应用层进入残酷筛选期:谁能熬过风暴成赢家?
  • NXP EdgeLock SE051H安全芯片:为Matter智能家居打造硬件级安全与NFC便捷配网
  • ClickHouse企业级版本管理:5步构建零风险升级与回滚框架
  • NS30JM精工直线导轨技术全鉴
  • Gemini 3.1 Pro论文写作7大实测提效技巧
  • 有什么方法能防止文件泄密?分享5个有效防止文件泄密的小技巧,安全高效
  • 从命令行到代码:shapefile工具shp2json与dbf2json的完整使用手册
  • Scaffolding安全最佳实践:保护生成代码中的敏感信息的完整指南
  • 配置centos7基础环境
  • WebRTC AV1视频编码介绍:下一代编码格式在实时通信中的应用
  • OneReward:基于多任务人类偏好学习的统一掩码引导图像生成
  • Logistic Regression实战指南:解决二分类落地中的特征缩放、类别不平衡与概率校准
  • LeetCode 2095. 删除链表的中间节点【链表,快慢指针】中等
  • 数据科学四条职业路径:分析、工程、建模与产品型
  • Java毕业设计-基于 SpringBoot 的宠物之家综合管理系统的设计与实现 面向宠物服务场景的宠物之家管理平台设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • MUSE-Autoskill:让LLM智能体技能自我进化,从静态工具到动态生态
  • 构建个人数字身份标识:从理念到实践的全流程指南
  • NPS面板HTTPS加密实战:Nginx反向代理与原生配置深度对比
  • 深部矿井围岩失稳机理、监测预警与稳定性控制技术实战解析
  • 终极指南:通过AES密钥解密《鸣潮》游戏模组开发全流程
  • Excel Slicer深度设计:从筛选器到可交付分析组件
  • Claude 3系列模型合规使用与提示工程实践指南
  • 软件逆向工程核心技术解析:从汇编基础到实战分析