@shmidtqq: https://x.com/shmidtqq/status/2068704187492221405

X AI KOLs Timeline 工具

摘要

一份关于AI编程代理循环工程的深入指南,解释了如何构建自动循环来重复提示代理、验证结果并避免失控成本,并通过一位工程师一个月内提交259个拉取请求的案例研究加以说明。

https://t.co/wXfbMqws2J
查看原文
查看缓存全文

缓存时间: 2026/06/22 05:37

循环工程:一个循环如何每月交付259个PR

去年十二月,一位工程师在一个月内交付了259个完成的代码变更(专业术语称为PR,即拉取请求)。他的AI写了每一个。他说他从未打开过代码编辑器。

Peter Steinberger用两行话总结,超过800万人看过:

Peter Steinberger @steipete·6月8日 这是每月提醒:你不应该再给编码智能体写提示词了。 你应该设计循环来驱动你的智能体。 1.8K 2.8K 19K 8.3M

同月出现了反面案例。某人的循环无人看管运行了11天,烧掉了47,000美元才被发现。所以这里有两项技能,而通常只教授第一项:构建一个能做事的循环,以及构建能防止它把你推下悬崖的刹车。

一张图看懂循环

循环是一个包裹在智能体周围的小程序。智能体执行一步。某物检查结果。没完成?继续下一步。如此循环,直到你的条件满足或你手动停止。

一个问题的答案能区分真正的循环和烧钱机器:是否存在诚实的方式判断工作是否做对?一个通过或失败的测试。一个能编译或不能编译的构建。没有检查,智能体只会原地自说自话,然后把账单寄给你。

第0步:30秒测试——你是否需要循环

循环在四个条件下才有回报。缺失一个,成本就超过收益。

  • 任务至少每周重复。否则就是一次性脚本,不是循环。
  • 验证是自动化的。测试、linter(代码风格检查器)、构建。没有检查,你就得手动审阅每个变更。
  • 你的预算能承受浪费。循环会重新读取上下文并进行探索,因此即使在空跑时也会烧钱。
  • 智能体拥有工程师的工具。日志、可复现失败的环境、运行自身代码的能力。

结构:任何循环的6个部分

剥离噪音后,一个可工作的循环包含六个部分。你不再需要手工构建它们:它们内置于工具中,并以相同方式映射到 Claude CodeOpenAI Codex 应用。

1. 状态:下一次运行唯一继承的东西

模型在运行结束时忘记一切。聊天的内存随之消失,因此记忆必须存在于磁盘上。实践中,就是一个文件。

把循环看作夜班。评判你的标准不是凌晨三点做了什么,而是九点桌上留下的便签。设计好便签,循环就设计好了一半。

2. 自动化:如何让一次运行变成循环

当循环自动启动时,它才成为循环。在 Codex 中这是“自动化”选项卡:项目、提示词、计划。在 Claude Code 中是三个独立的命令,而这里正是流行叙述常出错的地方,所以精确来说:

关键是 /goal。写代码的智能体无权给自己评分。像写合同一样写停止条件:“测试目录 test/auth 中的所有测试通过”是一个合同,“让它更好”是让循环一直旋转到发薪日的方法。

3. 工作树:并行智能体而不混乱

两个智能体写入同一个文件,就像两个工程师默默编辑同一行代码。git worktree 是它们之间的墙:一个独立的文件夹,在自己的分支上,共享历史。

工具不会提及的警告:工作树消除了冲突,但没有消除瓶颈。瓶颈是你。无论你启动多少个智能体,你的审查速度决定了你能信任多少个。

4. 技能:你的意图,一次编写,放在外部

智能体从零开始,并用自信的猜测填补任何空白。技能是你的意图,写在模型每次读取的地方。格式到处都一样:一个包含 SKILL.md 文件的文件夹。

没有技能,循环每次从头重新学习你的项目。有了技能,它每天早晨变得更智能。

5. 连接器:让循环采取行动,而不仅仅是说话

一个只看文件的循环只是个玩具。连接器(MCP 标准)让智能体读取你的问题追踪器、访问预发布服务器、发布到聊天频道。

这是“这是修复方法”与一个循环自行打开拉取请求、链接工单、报告测试变绿之间的区别。两个工具都支持 MCP,因此一个工具用的连接器通常可直接用于另一个。回报最快的连接器:代码追踪器、问题追踪器(Linear、Jira)、聊天(Slack)、错误追踪器。

6. 子智能体:编写者与检查者分离

最有价值的操作:将编写者与检查者分开。一个模型自我审查总会通过。第二个智能体,使用不同的指令和不同的模型,能捕捉到第一个智能体自圆其说的错误。

一个探索,一个编写,一个对照规范检查。这就是 /goal 在底层做的事情。第二个意见需要花钱,因为每个智能体运行自己的模型。在犯错代价高昂的地方,请使用它。

一个完整的循环

将六个部分组合起来,一条单线程就变成了一台机器。

  • 每个早晨,自动化在项目上运行。
  • 分诊技能读取一夜的失败、问题和提交,并将发现写入 STATUS.md。
  • 对于每个发现,打开一个单独的工作树。
  • 一个子智能体编写修复,第二个对照你的测试检查修复。
  • 连接器打开拉取请求并更新工单。
  • 任何失败的内容留在分诊收件箱中。STATUS.md 记住其余部分。

你醒来看到的不是一堆日志,而是一段简短便签:

在引擎启动前先装上刹车

那47,000美元的账单不是邪恶的AI造成的。而是两个智能体礼貌地互相要求更多工作:没有步骤限制,没有资金上限,没有停止条件。任何一个上限都会在第一天就阻止它。

核心规则:根据循环可能破坏的范围来限定,而不是根据你想让它做什么。先确定爆炸半径,再确定任务。并且诚实定价:

这三种情况下的技术是相同的。唯一区别是刹车是否已启动。

循环的四种死法

  • 失控递归。两个智能体互相提供工作,永无止境。解决:步骤上限和资金上限。
  • 静默死亡。上下文填满,循环停滞,但看起来还活着并报告“进度”。解决:心跳信号以及每个阶段使用新上下文。
  • 原地打转。没有可验证的条件,循环偏离目标。绿色测试是一个可达成的点。“看起来完成”不是。
  • 理解债务。循环编写代码的速度越快,你读得越少,你就离自己的项目越远。解决:强制添加“人类已阅读此步骤”,且绝不跳过。

一个附带名称的奖励:“Ralph 循环”。智能体过早发出“完成”信号并中途退出。这发生在没有真正的检查者和硬性停止条件时。一个有用的自我检查指标:计数不按 token,而按每个被接受变更的成本。如果接受率低于一半,循环就在亏本运行。

常规预算:5个更经济的玩法

这个循环是为那些不直接支付 token 费用的人构建的。以下是如何用更低的成本获得大部分价值。

  • 在 token 消耗前多思考。“构建登录功能”会猜测30步。一份完整的规范(登录方式、token 存活时间、错误状态、完成定义)能在一次通过中命中目标。
  • 规划用廉价模型,执行用昂贵模型。你的顶级模型不应该读取文件。将读取和规划交给一个小模型,将困难部分留给强智能体。
  • 启用缓存。循环每一步都发送相同的上下文,而缓存正是让重复成本更低的关键。15分钟的更改能将重复输入减少约90%。
  • 精简上下文。来自 Devin 团队的规则:委派读取,集中写入。将庞大的搜索交给一个廉价的子智能体,主智能体读取一份简短摘要,而不是40个文件。
  • 你自己就是循环。你引导的三次成功胜过无人看管的三十次。如果自动化,按步骤数设定上限。

当一个循环值得时:终点线是绿色测试,运行有界,并且你的一小时时间价值超过 token 成本。隔夜重构以及你无法手动清理的大量积压任务正是这种形状。但这只是工作中很窄的一部分。

构建循环。保持工程师身份

两个人构建相同的循环却得到相反的结果。一个在他们深刻理解的工作上加速。另一个则完全不再理解工作。循环无法区分他们。但你可以。

杠杆已经转移:从提示词到循环,从打字到判断。这是一份更难的工作,而不是更轻松的工作。

所以,有意地从小处入手。明天早上,拿一份你仍在手动完成的最无聊的工作:分诊失败、关闭陈旧问题、追逐间歇性测试。围绕它包裹一个带上限的循环。先装刹车。足够小,让你能阅读每个变更。

没有一个每月交付两百个变更的人是从一百个智能体开始的。他们始于一个他们信赖的循环。构建那一个。

相似文章