过去几年里,使用 AI Agent 的姿势变了好几次,对应几个陆续火起来的概念:
| 阶段 | 你优化的是什么 | 一句话 |
|---|---|---|
| Prompt Engineering | 发给模型的那句话 | 怎么问,它才答得好 |
| Context Engineering | 模型能看到的信息 | 喂什么、藏什么、何时清空 |
| Harness Engineering | Agent 运行所处的环境 | 工具、权限、规划、子智能体怎么配 |
| Loop Engineering | 包裹整个 Agent 的自动循环 | 让系统自己转起来,直到目标达成 |
前三层如今已经是主流 Coding Agent 的出厂能力,本文不展开(想了解可以回看前面几篇文章)。这篇文章要讲述的主要内容就是 Loop Engineering 和 /goal。
一、是的,AI圈没事就创造一个新名词
有的时候真挺无力吐槽的,Harness没冒出来多久又造了新的词语。而且这次也不是什么新鲜概念,本质依旧是控制论内闭环控制系统的衍生,并且计算机领域也有对应的概念——不就是CI流水线吗?

Agent 干完一轮 → 你验收 → 挑出毛病 → 写反馈 → 再等一轮 → 再验收,本质就是人肉CI。
那现在所谓的Loop Engineering 也就是在尝试把“验收”这个动作本身自动化。只要你的验收标准是程序可以执行的判断,那么这件事情就能自动化。能,这件事就能自动化;不能,就还得人来。
二、Loop Engineering 的本质:给循环加一个裁判
一个普通的 ReAct 循环是这样的:模型不断“思考 → 调用工具 → 观察结果”,直到它认为没活可干了就停。它停不停,取决于它自己的判断。
Loop Engineering 在这个循环外面加了一个独立的外部判断:
外层裁判: 目标达成了吗?
└─ 内层(干活的): 一轮完整的 Agent 执行
没达成 → 带着裁判的意见,再来一轮
这个结构里有一个关键设计:裁判不信任 Agent 的汇报。 Agent 说“我做完了”不算数,裁判只看客观证据。这在工程上基本解决了 LLM 总是倾向于报喜的问题。
代价也很直接:每多一轮外层循环,就是一轮完整的 Agent 执行。/goal 基本原理其实就和这个差不多,裁判和执行往往各自消耗一份上下文,所以 /goal 类功能普遍跑得很久(半小时到数小时)、烧 token 也猛。
三、/goal:把验收标准写成一份契约
2026 年起,主流 Coding Agent(Claude Code、Codex、Kimi Code 等)陆续把这套机制做成了内置功能,统一叫 goal(目标模式)。在 CLI 里输入 /goal,描述你的目标,Agent 就会自动搭起上面那套双重循环,无人值守地跑到目标达成或者撞上南墙。
基础操作很简单:
/goal 查看当前 goal / 激活目标模式
/goal pause 暂停
/goal resume 恢复
/goal clear 移除
看上去还是挺简单的,不过有一点点小坑在里面,/goal 需要的是完成契约。
感受一下两者的差别:
❌ 任务描述:帮我给 order 模块补一下单元测试。
✅ 完成契约:/goal 让 order 模块的单元测试覆盖所有 public 方法。
验收方式:npm test -- order 全部通过,覆盖率报告行覆盖 ≥ 80%。
约束:不许修改 src/order 下的业务代码,只新增测试文件;
现有测试套件必须保持全绿。
如果某个方法依赖的外部服务无法 mock,列出来报告,不要跳过。
前者没有终点——“补一下”补到什么时候算完?Agent 跑三轮还是三十轮,全凭它心情。
后者把“做完”定义成了一个可以程序判断的事实,裁判每一轮都能拿证据对答案。所以显而易见的是,想要用好 /goal 本质还是需要一点提示词工程的能力的。
一份完整的契约通常包含五个要素:
- 终态:完成的条件。写状态,不写动作。“覆盖率 ≥ 80%”是状态,“多写点测试”是动作。
- 验收方式:裁判拿来看的证据。优先选 Agent 能自己跑、能事后复查的东西——命令退出码、测试数之类的。
- 约束:完成目标不许牺牲什么。已有功能不许坏、改动不出某个目录、不许动线上数据。
- 迭代方式:每轮怎么推进。每次改动后重跑验收、按清单逐项处理、失败用例重放到通过为止。
- 止损条款:撞墙了怎么办。“外部服务不可用就记录并停下报告”能够拯救你的 token 。
写契约时的经验:
- 最好的目标是“队列形”的。能列成清单的目标(N 个失败测试、N 个待迁移文件、N 个待处理告警)天然自带进度条和完成定义,比开放式目标稳得多。
- 验收手段不够,先补验收手段。没有测试的项目先写冒烟测试,没有指标的先埋点。
- 别随手加轮数上限。契约写得好,它会自己停。
- goal 适合“明确但繁琐”,不适合“重要但模糊”。前者的痛苦是重复劳动;后者的痛苦是需求本身没想清楚,自动化只会把混乱加速而没有任何收益。
四、收个尾
Prompt → Context → Harness → Loop,这条链的每一步都是同一个动作:人把一段重复劳动交给系统,自己往上挪一层。写 prompt 的人变成了喂上下文的人,喂上下文的人变成了搭环境的人,搭环境的人变成了立契约的人。
就我写下此文的时间点,AI圈子已经冒出来新的名词 Graph Engineering 了 ,但按照我以前的经验来看估计也不是什么狠活。梁文峰在内部会议上提到的“持续学习”,或许才是真正下一个有意义的新名词吧。
Comments
评论
Loading comments...
登录后可以评论。 Login