AI

每天吃透一个 AI 知识点 —— 循环工程(Loop Engineering)

转载:小红书 AI产品赵哥

前言🔖


今天,咱们要聊一个最近比较热的概念 —— 循环工程(Loop Engineering)。

你是不是还在这样用 AI?

  • “嘿,AI,帮我写个 Python 脚本,实现这个功能:……”
  • (AI 返回一堆代码)
  • “嗯…… 这里好像有个 bug,你再改改。”
  • (AI 又返回一堆)
  • “不对不对,我的意思是……”

如果觉得这个场景很熟悉,说明你还在 “AI 提示 1.0 时代”,全程陪跑,一勺一勺喂指令,心累。

但真正的高手已经在用一种新方式和 AI 协作。

最近圈内两位大神说了几句话。

  • Peter Steinberger 说:”你不应该手动提示编程智能体了,应该设计循环来提示它。”
  • Anthropic 的 Claude Code 负责人 Boris Cherny 更直接:”我不再手动提示 Claude 了,我运行循环来提示它…… 我的工作是写循环。

看出变化了吗?重点从 “提示 AI” 变成了 “设计循环”。听起来有点玄? 这篇文章就把 “循环工程” 这个概念讲清楚。

  

一、人机协作新范式🔖


话说:循环工程到底改变了什么?它改变了我们与 AI 的关系范式。

🔹旧范式:人是主导,AI 是工具(”人机对话” 模式)

在这个范式下,你和 AI 的关系就像一个手艺高超的工匠和他的智能锤子。

  • 你(工匠):拥有全部的蓝图和最终目标。你需要精确地知道每一步该做什么。
  • AI(锤子):非常强大,能帮你完成单次、具体的敲击任务。你让它敲,它就敲。但它不知道整个桌子是什么样,也不知道下一步是该敲钉子还是该锯木头。
  • 交互方式:你输入一条指令(“敲这颗钉子”),阅读返回的结果(钉子进去了),再输入下一条指令(“把这块木板锯开”)。整个过程是一问一答、回合制的,你全程在线,一分钟也离不开你。

这个模式的优点是直观、易上手,但缺点也挺明显:你的效率上限,就是你个人输入、思考、判断的速度上限。你无法同时挥舞十把锤子。

  

🔹新范式:人是设计者,系统是主导,AI 是执行单元(“人设系统” 模式)

在这个范式下,你的角色发生了根本性的转变。你不再是那个亲手干活的工匠,而是变成了设计和运营一个全自动家具工厂的厂长。

  • 你(厂长 / 设计师):你的工作不再是敲钉子,而是设计整个工厂的生产线(循环)。你定义了 “生产一张桌子” 需要哪些工序、每个工序的标准是什么、工序之间如何衔接、以及如何进行质量检测。
  • 系统(生产线):这是你设计的核心。它是一个自主运行的流程,知道从哪里获取原材料(任务),如何把任务分解给不同的机器人(AI 智能体),如何检查每个部件的质量,以及如何将它们组装成最终产品。
  • AI(机器人 / 执行单元):它们是生产线上的具体执行者。有的机器人专门负责切割,有的专门负责打磨,有的专门负责组装。它们被赋予了特定的 “技能”,在系统的调度下高效工作。

  

二、循环工程的构成:五个组件 + 记忆🔖


一个成熟的循环系统,由五大核心车间和一条贯穿始终的生命线组成。

  1. 自动化车间(定时任务):工厂的动力心脏,确保生产永不停歇。
  2. 隔离生产区(WorkTree):为每个任务提供独立工位,防止交叉污染。
  3. 技能培训中心(Skills):给机器人进行岗前培训,让它们成为专家。
  4. 物流与外部接口(MCP):连接工厂内外,打通信息和物料流。
  5. 多角色团队(Sub-Agent):组建专家小组,实现生产与质检分离。以及那条至关重要的生命线:
  6. 中央数据库 / 生产日志(Memory):记录一切,让工厂拥有长期记忆。

接下来,我们将逐一走进每个车间,详细考察其功能、原理和价值。

  

🔹2.1 自动化车间:循环任务

这是循环工程的起点。如果没有自动化,所谓的 “循环” 就无从谈起,最多只能算一次手动触发的批处理任务。

【它是什么?】

循环任务(Loop Task),本质上是一个调度和触发机制。它像一个设定好程序的总开关,按照预定的规则,自主地启动、监控和管理任务。

【工作原理详解】

在现代 AI 编程工具中,自动化通常以以下几种形式存在:

  • 定时触发 (Time-based Triggers):你可以像设置闹钟一样,设定一个任务在特定的时间点或时间间隔执行。
    • Cron Jobs:最经典、最强大的定时任务。你可以用 "0 9 * * 1-5" 这样的表达式,来定义 “在每周一到周五的早上 9 点整” 执行某个任务。这对于日常报告、定时清理等任务非常有用。
    • 间隔循环(/loop):一种更简单的形式,比如 “每隔 30 分钟,运行一次 @skill-check-new-issues”。这种高频次的轮询,适合需要快速响应的监控类任务。
  • 事件触发 (Hooks):任务不再是盲目地按时执行,而是在某个特定事件发生时被唤醒。
    • 代码提交钩子 (Git Hooks):例如,你可以设置一个 post-commit 钩子,每当你提交一次代码,就自动触发一个 AI 来帮你检查提交信息是否规范,或对你修改的代码进行一次快速静态分析。
    • CI/CD 流水线集成:这是企业级应用中最常见的形式。在持续集成 / 持续交付(CI/CD)的流水线中,你可以插入一个 “AI 审查” 节点。例如,当一个 PR 的自动化测试全部通过后,自动触发一个循环,让 AI 子智能体对代码进行深入的逻辑和风格审查。
    • 外部服务 Webhooks:当你在 JIRA 上创建一个新的 bug ticket 时,JIRA 可以向你的循环系统发送一个 Webhook 通知,立即触发一个 “Bug 分析和复现” 的循环。

【核心价值】

自动化的核心价值,是将 “人找事” 的模式,彻底转变为 “事找人” 的模式。它让你的循环系统拥有了主动性和感知能力,能够自主地发现工作,而不是被动地等待你的指令。这把你从重复性的检查工作中解放出来,让你只需关注系统处理后的结果和异常。

此外,还有一个高级的自动化原语叫 /goal。它代表了目标驱动的自动化。你不再告诉 AI 做什么,而是告诉它你希望达到的最终状态是什么。例如,目标是 ./tests/ 目录下的代码覆盖率达到 90% 以上。AI 会启动一个持续的循环,不断地编写测试、运行测试、检查覆盖率,直到这个目标达成。这是一种更高维度的自动化,代表了循环工程的未来方向。

  

🔹2.2 隔离生产区:工作树 (Work Tree)

当你的工厂开始高速运转,同时处理几十上百个订单(任务)时,混乱就成了最大的敌人。想象一下,两个机器人在同一个工作台上加工不同的零件,结果必然是互相干扰,甚至导致生产事故。

【它是什么?】

工作树(Worktrees),是 Git 版本控制系统提供的一种高级功能,允许你从同一个代码仓库中,同时检出多个不同的分支到物理上相互隔离的目录中。

【工作原理详解】

让我们用一个具象化的比喻来理解。

  • 你的整个代码仓库,就像一栋办公大楼(.git 文件夹是地基和核心结构)。
  • 你的主分支(main 或 master),是大楼的大厅。
  • 当你创建一个工作树时,比如 git worktree add ../project-B-worktree feature-B,就相当于你从大厅出发,在大楼的旁边开辟了一块独立的工地,并建立了一座临时办公室。
  • 这个临时办公室和主楼共享同一个地基和设计图纸(代码历史),但它有自己的门、窗和内部装修(文件系统是独立的)。你在临时办公室里怎么折腾,都不会影响到主楼大厅里的人。

在循环工程中,每当一个新的、需要修改代码的任务被启动时,系统不会在当前的工作目录中直接操作。它会:

  1. 自动创建一个新的工作树,通常以任务 ID 或分支名命名,例如worktrees/fix-bug-456
  2. 在这个隔离的工作树中,派驻一个或多个 AI 子智能体。
  3. AI 在这个沙盒里,可以随心所欲地进行各种操作:修改、删除、新增文件;安装依赖包;运行测试;甚至把代码改得一团糟再重来…… 这一切都不会对主代码或其他任务产生任何影响。
  4. 任务完成后,如果成功,这个工作树的变更将被整理成一个 PR,等待合并。如果失败或取消,整个工作树目录可以被毫无顾虑地直接删除,不留任何垃圾。

【核心价值】

工作树的核心价值在于,它为大规模并行、无冲突的 AI 协作提供了基础物理隔离。它解决了状态污染资源竞争这两个在并发系统中极为头疼的问题。有了它,你的循环工厂才能真正实现流水线式生产,同时处理成百上千个任务而不会陷入混乱。

但这里也潜藏着一个 Bug:工具虽然解决了机械碰撞,但你的认知带宽和审查能力成为了新的瓶颈。AI 可以一分钟生成 100 个 PR,但你一天能认真审查几个?这引出了对人类工程师更高层次的要求。

  

🔹2.3 技能培训中心:Skills

一个刚出厂的 AI 模型,拥有强大的通用学习能力,但对你所在公司的具体业务、技术栈、编码规范、历史包袱一无所知。

如果你每次都指望它临场发挥,靠它那点自信的猜测来工作,那么产出的质量必然是不可控的。

【它是什么?】

技能(Skills),是一种将特定领域的、可复用的项目知识和操作指令,进行结构化封装的机制。它就像是为 AI 量身定制的 SOP(标准作业程序)手册。

【工作原理详解】

一个技能通常是一个独立的文件夹,其核心是 SKILL.md 文件。这个 Markdown 文件不是写给人的,而是写给 AI 看的。它的内容需要极度清晰、明确、无歧义。

一个典型的 code-review.skill 文件夹可能包含:

  • SKILL.md
# 技能:前端代码审查

## 你的角色
你是一位经验丰富、极其注重细节的前端架构师。你的审查目标是确保代码的健壮性、可维护性和性能。
## 审查清单(必须逐项检查)
1. **代码规范**:是否严格遵守了项目配置的ESLint规则?(运行`npm run lint`确认)
2. **类型安全**:是否为所有新的函数和组件添加了完整的TypeScript类型定义?杜绝使用`any`类型。
3. **组件抽象**:是否存在重复的代码块?是否可以将其抽象成一个可复用的React组件?
4. **性能**:是否存在不必要的`re-render`?是否正确使用了`useMemo`和`useCallback`?
5. **安全性**:是否存在XSS或CSRF漏洞的风险?特别是处理用户输入的地方。
6. **“我们不这样做”规则**:
    * 我们不使用`default export`,因为不利于IDE重构。
    * 我们不直接在组件中进行API调用,必须通过`services`层。这是因为“那次事故”。

## 输出格式
请以列表形式,清晰地指出每个问题,并提供具体的修改建议和代码示例。
  • scripts/(可选):可以包含一些辅助脚本,比如一个用于检测any类型的特殊脚本。
  • examples/(可选):可以包含一些正反样例的示例,供 AI 学习。

当循环调用 @skill-code-review 时,AI 会完整地加载并消化这些信息,然后带着这个 “专家人设” 和 “检查清单” 去执行任务。

【核心价值】

技能的核心价值,在于实现了意图的外部化和持久化

  • 对抗意图债务:AI 每次从零开始都会用猜测填补你意图的空白,这就是意图债务。技能就是把这些意图(约定、规范、背景)写在外面,一次性还清债务。
  • 实现知识复利:你为项目沉淀的技能越多,AI 就越懂你的项目。新来的 AI 也能立即继承所有老员工的经验教训。这是一个知识不断积累和增值的过程。
  • 提升可维护性:当项目规范变化时(比如,决定开始使用default export了),你只需要修改SKILL.md这一个地方。所有依赖此技能的循环都会自动更新,避免了灾难性的批量修改提示语工作。

  

🔹2.4 物流与外部接口:连接器

一个与世隔绝的工厂是毫无价值的。它需要从外部获取订单(任务),采购原材料(信息),并将成品交付给客户。

【它是什么?】

连接器(Connectors),是让循环系统能够与外部世界进行 API 级别交互的驱动程序。插件(Plugins)通常是围绕特定工具(如 JIRA)的一组连接器和相关技能的集合。

【工作原理详解】

每个连接器都封装了与一个特定服务(如 GitHub API, Slack API, JIRA API)对话的逻辑。它为 AI 提供了一组可以调用的工具函数。

当 AI 决定需要 “创建一个 PR” 时,它实际上并不是在生成 git 命令。它是在调用一个名为 github.create_pull_request 的工具函数,并传入必要的参数(如标题、描述、分支名)。

这个过程对 AI 是透明的。它只需要知道 “我有这个工具可以用”,而不需要关心这个工具背后是如何通过 HTTP 请求、认证、错误处理来与 GitHub 服务器通信的。

【核心价值】

连接器的核心价值在于,它赋予了循环系统在真实数字世界中行动的能力。它将 AI 的智能从纯粹的文本和代码生成,扩展到了能够实际操作和驱动企业级工作流的层面。

  

🔹2.5 多角色团队:Sub-Agent

“权力导致腐败,绝对的权力导致绝对的腐败。” 这句话在 AI 世界同样适用。让一个 AI 同时负责创造和评判,无异于让它自己监督自己,结果必然是 “你好我好大家好”,而质量隐患则被悄悄掩盖。

【它是什么?】

子智能体(Sub-Agents),是一种将一个复杂的任务分解成多个子角色,并由不同(或带有不同指令)的 AI 实例来分别执行的架构模式。

【工作原理详解】

这不是简单地把一个大提示拆成几个小提示。它的精髓在于角色和指令的差异化。你可以定义一个智能体团队,每个成员都有自己明确的人设和 KPI。

一个常见的代码生成团队配置:

  • 首席架构师
    • 模型:最强、最贵的模型(如 GPT-5.2、Claude-sonnet-4-5)。
    • 指令:不要写任何一行代码。你的唯一任务是深入理解需求,分析现有系统的复杂性,设计出高层次的解决方案、接口和数据结构。输出一份清晰、详细的设计文档。
    • 特点:思考深、成本高、速度慢。
  • 开发工程师
    • 模型:速度快、性价比高的模型。
    • 指令:严格按照首席架构师的设计文档进行编码。不要进行任何自由发挥。你的目标是快速、准确地将设计翻译成代码。
    • 特点:执行快、服从性强。
  • 测试工程师
    • 模型:同样是强力模型,但可能来自不同的公司(例如,用 Minimax M3 来审查 Claude 写的代码),以引入不同的思维模式。
    • 指令:你是全世界最挑剔、最爱找茬的测试工程师。你的工作就是证明这段代码是错的。尝试所有可能的边缘情况、异常输入、并发场景。阅读首席架构师的原始设计,检查开发工程师的实现是否 100% 符合意图。
    • 特点:批判性、对抗性、追求极致。

这三个子智能体形成了一个提出想法 → 实现想法 → 挑战想法的内部博弈和制衡机制。

【核心价值】

子智能体的核心价值在于,通过在系统内部引入建设性冲突,来极大提升产出物的鲁棒性和可靠性。

  • 质量保证:这是在无人监督情况下,你能信任循环系统的唯一原因。因为你知道,代码在交给你之前,已经历过一轮内部的血雨腥风。
  • 任务分解:它也自然地将复杂问题分解成了更小、更易于管理的部分,符合软件工程的基本原则。
  • 成本优化:你可以将最昂贵的模型用在最需要创造性和批判性思维的环节(设计、审查),而将性价比高的模型用在相对机械的编码环节。

  

🔹2.6 中央数据库 / 生产日志:记忆

一个没有记忆的工厂,每天都是第一天开工。它不知道昨天生产了什么,哪些订单完成了,哪些还在进行中。这样的工厂,只能处理瞬时任务,无法执行任何长期的、有状态的项目。

【它是什么?】

记忆(Memory),是一种将循环的当前状态、历史记录和未来计划,持久化地存储在 AI 上下文之外的机制。

【工作原理详解】

关键在于上下文之外(out of context)。AI 模型的上下文是昂贵且有限的,并且在每次会话结束后都会丢失。因此,真正的记忆必须存储在外部。

常见的实现方式:

  • 简单的文本文件:一个 state.jsonstatus.md 文件。循环每次启动时先读取它,每次做出重要决策或完成一个步骤后就更新它。这是最简单直接的方式。
  • 版本控制系统:Git 本身就是一个强大的记忆系统。分支的创建、合并、标签,都可以作为记忆的一部分。PR 的描述和评论区,更是记录了详细的决策过程。
  • 专门的数据库或看板工具:对于非常复杂的循环,可能会使用一个轻量级的数据库(如 SQLite)或通过 API 与 Trello、Linear、JIRA 等看板工具深度集成。任务卡片本身就成了记忆的载体。

比如,那个 status.md 文件里可能会这样记录:

# 循环状态更新 - 2026-06-17
## 已完成
- [x] Bug #123: 修复成功,PR #55 已合并。

## 进行中
- [ ] Bug #124: 正在尝试修复,已生成工作树 `fix-bug-124`。

## 待处理
- [ ] Bug #125: 优先级高,等待分配。

## 失败记录
- [!] Bug #120: 尝试3次修复失败,原因:无法稳定复现。已标记为“需要人工介入”。

【核心价值】

记忆的核心价值在于,它为循环系统提供了时间的维度,使其能够:

  • 处理长期任务:一个需要数天才能完成的重构任务,可以被分解成多个步骤,循环每天完成一步,并通过记忆来知道第二天该从哪里继续。
  • 具备可恢复性:如果循环在执行过程中意外中断,当它重启时,可以读取记忆,从上次中断的地方继续,而不是从头开始。
  • 避免重复工作:记忆记录了已经尝试过的方法和结果,特别是失败的尝试。这可以防止 AI 一遍又一遍地掉进同一个坑里。

五个组件 + 一个记忆,共同构成了循环工程的宏伟蓝图。自动化是动力,工作树是秩序,技能是专业,连接器是触角,子智能体是智慧,记忆把这些串联了起来。

  

三、循环工程师的三大遗留问题🔖


当你掌握了设计循环工程后,一种前所未有的强大感觉会油然而生。但,所有强大的力量,都伴随着巨大的风险。这些风险,更多地来自于人性的弱点。

🔹问题一:验证责任推卸

症状:你开始无条件地信任循环的产出。“AI 说测试通过了,那肯定就通过了。”“这个 PR 是循环生成的,直接合并吧。”

危险:AI 的验证是基于它被赋予的规则和模型的局限性。它无法理解业务的微妙之处,无法预见现实世界中所有不讲道理的用法。一个通过了所有

自动化检查的 PR,可能在逻辑上存在一个足以让公司承担重大损失的漏洞。

解药:永远记住,你是最终的责任人。把 AI 的审查结果当作一个能力超群的初级工程师给你的审查报告。你需要以一个资深架构师的视角,去进行最终的、带有业务洞察力的元审查。你的价值,体现在那 AI 无法企及的最后 1% 的判断上。

  

🔹问题二:理解债务

症状:你的循环系统效率极高,每天为你产出海量代码。你开始懒得去阅读和理解这些代码。你对自己亲手维护的代码库,渐渐感到陌生,甚至畏惧。这就是理解债务

危险:当一个真正棘手的、深层次的问题爆发时,你需要像一个侦探一样,深入代码的肌理去寻找线索。但此时,你发现自己已经不认识代码了。你失去了对系统的掌控力,从一个主人,沦为了一个奴隶。

解药:强制自己进行代码考古。每天 / 每周安排固定时间,去阅读循环生成的、最重要的那些 PR。不是为了找茬,而是为了学习和同步。问自己:

“AI 为什么选择这样实现?有没有更好的方法?这个改动对系统的其他部分有什么潜在影响?” 让审查 AI 代码的过程,成为你自身成长的过程。

  

🔹问题三:认知的投降

症状:这是最危险的一种。你开始为了逃避思考而使用循环。你不再主动设计和优化循环,而是满足于使用别人提供的模板。你不再批判性地审视 AI 的建议而是全盘接受,因为它看起来很合理,而且自己想也挺麻烦的。

危险:你将自己最重要的核心竞争力 —— 思考、设计、判断、创造 —— 拱手让给了机器。你从一个与 AI 共舞的伙伴,退化成了一个 AI 的接口的操作员。

解药:将自己定位为 AI 的教练。你的工作是训练 AI、引导 AI、挑战 AI。在设计循环时,不断问自己为什么。为什么要这样分工?这个循环的弱点是什么?我如何设计一个实验来测试它的极限?保持这种元认知(Metacognition)层面的思考,是你在 AI 时代不可替代性的终极护城河。