开场个人观察
这两年大家使用 AI 编程助手的方式变化很快。最开始是 prompt engineering:想办法把一句提示词写得更清楚。后来是 context engineering:想办法把项目背景、代码结构、接口文档、错误日志都给到 AI。再往后是 skill:把重复的工作流沉淀成 SKILL.md,让 AI 在合适场景自动调用。
到了 2026 年,越来越多人开始讨论 Loop engineering。它不是一个单独的插件,也不是某个固定命令,而是一种新的 AI 协作方法论:不再由人一轮一轮地提示 AI,而是设计一个循环,让 AI 能围绕目标持续执行、观察结果、修正策略,直到达到停止条件。
一句话说,Loop engineering 就是把 AI 编程从“一次性生成代码”,变成“目标、执行、验证、反馈、修正、停止”的工程闭环。
Loop engineering 是什么
Loop engineering 可以理解为“设计 AI agent 的工作循环”。一个好的 loop 至少包含五个部分。
目标:明确这次循环要完成什么,什么情况下算完成。
上下文:告诉 AI 当前项目规则、代码结构、业务背景、历史决策和约束。
行动:让 AI 执行一个小步骤,比如读代码、写 spec、改一个切片、跑一个测试。
观察:把测试结果、错误日志、diff、接口响应、CI 状态反馈给 AI。
停止条件:测试通过、验收清单完成、连续失败、超出预算、需要人工确认时停止。
如果没有观察和停止条件,所谓 loop 只是“让 AI 一直跑”。这很危险。真正的 Loop engineering 强调的是可验证、可回滚、可暂停、可复盘。
它和几个相近概念的区别也很清楚:
1 | Prompt engineering:优化单次输入。 |
所以 Loop engineering 不是替代 prompt、context、skill,而是把它们组织起来。
Loop engineering 怎么用
一个最小可用的 loop 可以这样设计:
1 | 1. 明确目标:我要修复某个 bug,或者完成某个业务切片。 |
这里最重要的是“小步”。很多人用 AI 失败,不是因为模型不行,而是一次给了太大的任务。比如“重构库存系统”就太大了,应该拆成:
1 | 库存锁定模型 |
每个小切片都能单独验证,loop 才不会失控。
我会把常用组件这样组合:
OpenSpec/OPSX:负责把需求变成可追踪的规格。
Superpowers skills:负责澄清、计划、TDD、调试、review。
Codex:负责读代码、改代码、跑命令、看 diff。
/goal:负责让 Codex 围绕一个可验证目标持续推进。
Automations:负责让某些 loop 定时运行,比如每天检查失败测试、未处理 issue、CI 错误。
Git worktree:负责隔离多个并行 loop,避免互相改乱。
状态文件:负责记录做过什么、失败过什么、下一步是什么。
用 Codex 实践 Loop engineering
用 Codex 做 Loop engineering,关键不是让它“无限执行”,而是把目标和停止条件写清楚。
一个比较实用的 Codex loop 可以长这样:
1 | 目标: |
如果使用 Codex 的 /goal,我会把目标写成可验证条件,而不是一句空话:
1 | /goal |
这个 /goal 的重点是“直到满足什么”,而不是“帮我一直做”。没有停止条件的 loop 很容易烧 token,也容易把项目改得越来越远。
供应链系统案例
假设供应链系统要做“采购到货差异处理”。业务背景是:采购单下了 100 件,实际只到了 80 件,或者到了 110 件,或者其中 10 件质检不合格。系统需要记录差异,并影响库存、财务暂估和报表。
这个需求如果一次性让 AI 实现,很容易失控。我们可以设计三层 loop。
第一层,规格 loop。
1 | /opsx:propose purchase-receipt-discrepancy |
这一层的 loop 不是写代码,而是让需求变清楚。它的停止条件是:spec 能回答接口、数据、状态、异常、验收。
第二层,计划 loop。
1 | 请使用 writing-plans skill 细化 tasks.md。 |
计划 loop 会把大需求拆成:
1 | 任务1:新增差异类型枚举。 |
第三层,实现 loop。
每个任务都走同样的循环:
1 | 取一个任务 |
以“少到差异登记”为例:
1 | 请使用 test-driven-development skill 实现少到差异登记。 |
如果测试失败:
1 | 请使用 systematic-debugging skill 分析失败。 |
实现后:
1 | 请使用 requesting-code-review skill 审查当前 diff。 |
这个过程看起来慢,但大需求最怕的不是慢,而是一路快到错误方向。Loop engineering 的价值,就是让每一轮都有证据。
Loop engineering 的局限性
第一,成本会变高。
loop 会反复读代码、跑测试、审 diff、修错误,token 和时间成本都比一次性生成高。解决办法是控制 loop 粒度:只让它处理一个切片;给出最大轮数;失败两次就停;不要把整个仓库都塞进上下文。
第二,停止条件很难写。
“把库存做好”不是停止条件,“库存预占相关 12 个测试通过,diff 不包含无关文件,review 没有 P0/P1 问题”才是停止条件。解决办法是把完成定义写成可检查清单,最好能对应测试、命令或具体文件。
第三,AI 会产生理解债。
loop 跑得越快,人越容易不看代码,最后系统变了但自己没理解。解决办法是每个 loop 结束必须输出变更摘要、设计决策、风险点和人工验收清单;关键业务代码必须人工 review。
第四,错误会被自动放大。
如果 spec 一开始错了,loop 会持续围绕错误目标努力。解决办法是把 propose、plan、apply 分开,在 spec 阶段用 requesting-code-review 审查,必要时先暂停。
第五,环境依赖会卡住。
外部系统、数据库权限、测试数据、接口凭证都可能让 loop 无法继续。解决办法是提前定义阻塞条件:缺凭证、缺数据、连续失败、外部系统不可达时停止,并输出需要人工补充的内容。
第六,并行 loop 会互相干扰。
多个 agent 同时改同一个模块,很容易冲突。解决办法是使用 git worktree 隔离,按业务边界拆任务,并限制每个 loop 的文件范围。
总结
Loop engineering 的本质,是把 AI 编程从“人不断提示 AI”,升级成“人设计一个可验证的循环系统”。这个系统会发现任务、执行任务、观察结果、修正错误,并在满足条件时停止。
对 Codex 来说,Loop engineering 可以落到很具体的实践:用 OpenSpec 写规格,用 Superpowers skills 管过程,用 /goal 维持目标,用测试和 diff 做反馈,用人工 review 控住业务风险。
但它不是银弹。loop 越自动,越需要明确目标、边界、验证和停止条件。真正可靠的 Loop engineering,不是让 AI 替你思考,而是让 AI 在你设计好的工程轨道里持续前进。