上一篇 loopEngine 实战 是蹭热度的精简版。这篇写完整的——把我们到底怎么把"agent 循环"工程化讲透,包括所有用过的循环形状和踩过的坑。反正产品技术上没难点,没啥好藏的。
数字还是那个:六周、两百多条变更记录、基本一个人 + 一堆 agent 循环推出来的。
三阶段演进(这回讲细一点)
① 手动双开:一个写,一个审
最土的 loop:开两个对话,一个 coder 写,一个 reviewer 审,我手动两边搬代码。为什么有用——
- 写代码那个有"完成偏好":它想赶紧交差,会自我说服"这没问题";
- 审查那个屁股坐在对面,专挑边界条件、并发、错误处理、"这里失败了会怎样";
- 两个一对线,质量立刻上一个台阶。
② 让写手 fork 一个审查分身
手动搬代码太蠢,于是让 coder 自己开一个子 agent 审自己刚写的。但这里有个关键洞察:
审查 agent 必须"换屁股"。给它的指令不是"看看对不对",而是"默认假设这里有 bug,去把它找出来 / 证明它是错的"。不换立场,自审就是橡皮图章。
③ workflow 编排:把循环变成可组合的流水线
再后来上 workflow,把单一"写-审"循环扩成多阶段、可编排的管线,而且按任务挑不同的循环形状。下面是重点。
我们真正用的循环形状(完整清单)
- 调研型:多个 agent 并行从不同角度查 → 综合 → 设计 → code → review。适合不熟的领域,先搞清楚再动手。
- 功能型:code → review → test → debug,循环到测试绿为止。
- 排错型:复现 → 二分定位 → 修 → 回归测试。
- 并行扇出 + 合并:多个 agent 各写一版方案、或各审一个维度(正确性 / 安全 / 性能),最后合并取优。
- 对抗验证(adversarial verify):每个"发现/结论"派 N 个怀疑者,每个都被要求去反驳它,多数反驳就毙掉。专治"看着对、其实错"的结论。
- 多视角验证:一个结论可能从好几个方向错,就给每个验证者不同"镜头"(正确性 / 安全 / 能不能复现),比派 N 个一模一样的复读机更能抓到漏。
- 裁判团(judge panel):让 N 个 agent 从不同切入点各出一版方案 → 并行打分 → 从赢家综合、再嫁接亚军里的好点子。解空间大的时候,比"一版反复改"强很多。
- loop-until-dry:找 bug / 找边界这种"不知道有多少"的活,就一直派 finder,直到连续 K 轮没有新发现。简单计数(找够 N 个就停)会漏掉长尾。
- 完整性批判者:流水线最后派一个 agent 专门问"还缺什么——哪个角度没跑、哪条结论没验证、哪个源没读"。它揪出来的,就是下一轮要补的活。
关键是:没有万能 loop,挑对形状,速度和质量差很多。
几条铁律(拿真金白银/翻车换来的)
1. 别让生成者评判自己。换个角色、fork 个分身、利益不一致——这样才挑得出真问题。自己审自己 = 橡皮图章。
2. 每个 loop 都要有明确退出条件。测试绿 / 审查零 critical / 连续 N 轮无新发现 / 预算上限。没有退出条件的循环 = 空转烧 token。
3. 结论必须复核——agent 会一本正经地胡说。真实例子:这次有个 agent 信誓旦旦报告我的 sitemap "日期在撒谎",我去读源码 + 逐页对比,发现是它看到"日期都一样"就脑补成 bug;还有个工具报我"0 流量",结果第一方数据一看根本有量。循环里每个结论,都要拿源码 / 真实数据再验一遍才动手。
4. 用结构化输出(schema 强约束)在 agent 之间传结果。别让下游去解析上游的自由文本——强制每个 agent 吐固定结构,链路才稳。
5. 不同任务配不同循环形状,别一套流水线打天下。调研、功能、排错是三种完全不同的循环。
人的角色变了
用熟这套之后,我基本不"亲手写代码"了,工作变成三件事:设计循环(选形状、定阶段、配并行还是串行)→ 定验收标准(什么算通过、什么时候退出)→ 拍板(在 agent 给的方案/结论里做最终决定)。
说到底,loopEngine 没什么黑魔法:把"生成 → 批判 → 迭代"自动化、按任务选对循环结构、给每个循环定好退出条件和验收标准。产品本身不难,但靠这套,一个人也能高速且稳定地把它推到上线。
会持续更新。产品在这儿:
- 🔗 SayCraft:https://saycraft.ai
- ▶️ Demo:https://www.youtube.com/watch?v=GexoXdZSI9k