Loop Engineering 半年实战拆解:自进化的开发系统已开源
一位量化开发者把跑了半年的 loop 工程系统(claude-ship)开源,用真实使用痕迹拆解 7 个 agent + /ship 状态机的设计决策,核心论点是”最重要的循环不是 dev→review→qa 代码循环,而是 retro→memory→下一个 feature 的进化循环”。
基本信息
- 来源类型:文章
- 原文位置:raw/articles/2026-07-10-202745-tg-534d17.md
- 原文 URL:https://juejin.cn/post/7660689656082382898
- 消化日期:2026-07-10
核心观点
-
单人开发的三个致命弱点是”人的问题”而非 AI 的问题:AI 只是忠实暴露了以前被团队结构掩盖的弱点——确认偏误(和同一个模型对话它会顺着你走,一个人的头脑风暴是回音壁)、审查疲劳(初期每行都看,三个月后只扫关键函数,认知经济学决定 95% 正确率下大脑把审查预算降到 5%,但那 5% 的错误不会自己贴标签)、记忆蒸发(三个月前的诡异 bug 怎么修的?注释”fix edge case”毫无帮助,一个人的团队没有同事可问)。整套 loop 的起点就是”用系统性约束把这三个问题关进笼子”。
-
七步流水线不是更聪明,是更不蠢:7 个 agent 各有独立人格、工具权限、模型分配,输出统一落在
<feature-name>/目录形成”七件套”(requirements → design → third_party_review → implementation → review → test_report → retro)。模型分配按认知特征而非强弱:review 用 Opus(高判断力、慢但准),dev/qa 用 Sonnet(快速便宜),clarify/architect 用默认模型。 -
review 的”先猜后看”是整套体系最满意的设计:review agent 不是”读代码→找问题”,而是先只读 design.md/implementation.md 列出 3-5 个最可能的缺陷区域(预测),再带着预测审代码,并同时记录预测命中和预测未覆盖的问题(后者更重要,暴露盲区)。这把认知科学发现(先看答案再推理会高估自己,先预测再看答案校准精度大幅提升)工程化了。预测起点不是直觉而是 memory——检索历史事故模式,使系统审查能力随使用次数增长。
-
retro 存 memory 的三条铁律筛掉废话:必须同时满足 Non-Googleable(网上搜不到,排除通识)、Codebase-Specific(能指到具体文件/错误/项目独有模式)、Hard-Won(真实 debug 付出代价的教训)才能入库;memory 总数硬上限 5-8 个,新进旧的要合并淘汰。原因不是存储贵,而是噪音会毒化进化循环——存 100 条”注意边界条件”级别的废话,下次检索命中率反而下降。
-
/ship 状态机把 review gate 做成真正的闸门:dev 在本 session 执行(可实时打断),review/qa 用 Task 工具开独立 subagent(隔离上下文,只看文档、看不到 dev 的内心独白,强制保持不相关性);gate 是硬阻断(Critical/Important 阻断计数 > 0 就跳过本轮 QA 直接打回 dev,跳过 QA 是为了省 token);循环有硬上限(第 4 轮暂停询问、超 5 轮强制终止并给根因分析);文档是 agent 间接口协议(review.md/test_report.md 增量追加,历史章节不得改删,可回溯决策演进)。
-
真正值钱的是进化循环不是代码循环:代码循环保证”这一次”不出错,进化循环保证”下一次”比这一次更强且自动。六个月里 memory 从空到 7 条 hard-won 事故模式,review 预提交预测命中率从五成提到七成多——不靠模型升级(Opus 还是那个 Opus),靠”系统记住了上次在哪摔的,这次先看那个方向”。每次迭代在三个维度积累:知识(memory)、校准(预测命中率暴露盲区)、流程(agent 定义的迭代)。这是复利结构,不是一次性效率提升。
实操内容保留
代码/配置
安装与使用(原文完整命令):
git clone https://github.com/Peakstone-Labs/claude-ship.git
cd claude-ship
./install.sh # 拷贝进 ~/.claude,立即可用之后在任意项目里的工作流命令序列:
/clarify <feature>
/architect <feature>
(可选)/third_party_review <feature>
/ship <feature>
/retro <feature>启用跨厂商设计评审:复制 third-party-review.d/provider.env.example 为 <provider>.env,填入第三方端点信息(endpoint + key + model,任何兼容 Anthropic Messages API 的服务如 DeepSeek、Kimi 均可)。实现方式是 headless Claude Code + 切换 ANTHROPIC_BASE_URL 到第三方端点,脚本自动拉起独立会话,把 design.md、requirements.md、项目 CLAUDE.md 喂进去后落盘评审报告。
仓库结构:commands/(slash 命令入口)、agents/(agent 人格定义,纯文本读完只需五分钟)、templates/development/(八个文档模板)、scripts/third-party-review.sh(跨厂商评审的 headless Claude Code wrapper)。
操作步骤
review agent 的”先猜后看”工作流程:
- 先不读代码,只读 design.md 和 implementation.md,基于设计列出 3-5 个最可能的缺陷区域(如”错误处理可能不全”、“并发场景可能有竞争”)。预测起点先从 memory 检索相关历史事故模式。
- 带着这些预测去审代码。
- 记录预测命中的问题,也记录预测未覆盖的问题(后者更重要,说明预判有盲区)。
“低风险即修”准则(Minor/Suggestion 级问题):如果同时满足四个条件——有客观依据、无副作用(不改公共 API/数据格式/外部行为)、改动量 ≤20 行且单文件、不需要用户确认——必须修,不允许说”先跳过”。延后理由有白名单,只有四种合法:超出 scope、需用户确认、需大重构、与 design 冲突;禁止”后续优化""暂时忽略”这类模糊措辞(会被标记 rejected-defer 照样阻断)。
上手建议(三条):
- 从 review 和 retro 开始,而不是七个全上——这两个 agent ROI 最高。
- 先写好 CLAUDE.md,花一小时写好比花一天调 agent prompt 更值。
- 把第一个 feature 的 memory 当投资而非成本,前三个 feature 是在给第四个及之后种地。
关键概念
- claude-ship — 本文开源的 loop 工程系统实现,7 agent + /ship 状态机
- 预提交预测 — review agent”先猜后看”的核心设计,把认知科学校准回路工程化
- Loop Engineering — 本文是 Loop Engineering 落地半年的实战拆解与开源样本
- 自我改进代理系统 — 本文的”进化循环”(retro→memory→下一个 feature)是自我改进系统的具体案例
- 7 Agent 软件工厂 — 同为 7-agent 结构化开发方法论,可对照两套设计
- 事前验尸 — review 的预提交预测与事前验尸同源(都是”先假设/预测再验证”以提升校准)
- 验证者子代理 — review/qa 用独立 subagent 隔离上下文,是执行者-验证者分离的实现
- 状态文件 — 七件套文档是 agent 间接口协议,等价于 loop 的状态持久化
与其他素材的关联
- 与 2026-06-22-loop-engineering-woshipm 的关系:那篇给出 Loop Engineering 的六模块/三角色抽象框架,本文是把框架落成一套跑了半年、已开源的具体系统,用真实使用痕迹补齐”每个模块具体怎么设计”。
- 与 2026-07-06-blocktempo-fable-5-self-improving-agent 的关系:两篇都主张”最重要的是进化循环、执行者与验证者必须分离、教训要蒸馏写回 memory/Skill”,本文用 claude-ship 的 retro→memory 闭环和 review 独立 subagent 给出了同一主张的另一套工程实现。
- 与 2026-07-01-loop-engineering-pm-codification 的关系:那篇从 PM 视角讲”验收门禁/独立验证器/状态文件”,本文的 /ship 硬阻断 gate、跨厂商评审、七件套文档正是这些管理概念在代码层的落地。
- 与 2026-07-01-woshipm-multi-agent-coding-pipeline 的关系:两篇都强调多 agent 拆分要以上下文隔离为中心、子智能体只返回结果由主流程判断、无证据不算完成、循环要有重试熔断上限。
原文精彩摘录
“我现在基本不直接 prompt Claude 了,我写的是循环——让循环去 prompt Claude,然后自己决定下一步。“(Boris Cherny,Claude Code 负责人)
“如果 95% 的 AI 生成代码都是对的,你的大脑会自动把审查预算降到 5%。问题是,那 5% 的错误不会自己贴上标签。”
“六个月后,memory 里存了七条 hard-won 的事故模式……现在 review 启动时,先从 memory 检索相关模式,再列预测清单。命中率从五成提到了七成多。这不靠模型升级——Opus 还是那个 Opus。靠的是:系统记住了上次在哪摔的,这次先看那个方向。”
“一个没有 memory、没有校准、没有自我改进的死循环,只是一个配置了重试逻辑的脚本……一个会学习的循环,每一次迭代都在三个维度上积累:知识积累、校准积累、流程积累。”
“开源不是因为我觉得它完美。恰恰是因为它不完美——第四节列的那五个缺陷,每一个都是真实使用中暴露出来的。开源的目的不是’发布最佳实践’,是让更多人用起来,然后告诉我哪里设计错了。“