一段几行长的伪代码,差不多就是这两年 AI Coding 各种新词的共同终点:
while True:
code = generate()
result = verify(code)
if result.success:
break
feedback = collect_error(result)
revise(code, feedback)
生成、验证、失败回流、再生成。社区给这套模式起过 Self-healing、Auto Fix、Repair Loop 一堆名字,工程要求却始终只有一条:验证结果必须回流到下一轮生成,失败不能只躺在日志里。
理解了这一点,再看 Prompt、Context、Harness、Loop 这四个词,就不会被宣传口径带着跑。它们不是四个互相取代的「范式」,而是一条能力轴上的四段:意图怎么表达、知识从哪来、手脚往哪放、错了怎么修。越靠后,起决定作用的越不是模型单点能力,而是模型外围的工程约束。
输入层的天花板
Prompt 工程的链路短得可爱:User → Prompt → LLM → Result。角色设定、任务说明、Few-shot、思维链,这些手法对单次回答质量的提升是真实的。
但输入承载不了项目。代码库结构、业务规则、历史决策,这些东西写不进一段提示词,于是 Prompt 越写越长,从几百 token 膨胀到上万,变成一份塞满禁令、角色和格式要求的临时说明书。任务一沾项目背景,写得再漂亮的输入也补不上缺口——这是输出结构决定的硬边界,不是模型不够聪明。
供给层:喂对材料比会提问重要
Context 工程的出发点是承认上面那个现实。链路变成 Context + Prompt → LLM → Result,重心从「怎么问」挪到「给什么」。
材料分三路:项目知识(README、编码规范、架构文档)回答「项目怎么组织」;业务材料(API 规格、流程说明、示例数据)划出需求边界;动态记忆(Memory、RAG、知识库)让模型继承此前会话的经验。围绕它的 Context Window、压缩、检索、排序乃至 MCP,最终都在解同一道题——任务发生那一刻,把相关、可信、足够新的信息递过去。判断标准是「刚好有用」,不是「越长越好」。
行动层:一个能动手的车间
上下文齐了,模型还可能乱改文件、不编译、不跑测试、不看日志。Harness 补的是行动外壳,按能力拆开看很直白:Git 和 Worktree 负责隔离改动、留存差异、随时回滚;Shell 与 Docker 圈出可执行环境和依赖边界;Build、Test、Lint 三件套做确定性验证;Deploy 和工具集接通真实系统;State 与 Memory 记下任务进度和中间产物。
套上这层壳,Agent 的行为才从「聊天」变成 Observe → Plan → Act → Verify 的循环。结构上这并不新——CI 环境、构建机、开发者工作区早就是这套形状,变化的只是操作者从人换成了模型。
修正层的准入门槛
反馈回路不是什么失败都能进。准入标准只有一条:失败能不能被机器稳定复现。单元测试、类型检查、Lint、构建日志、运行时报错,都是确定性反馈源,合格;纯文案润色、界面好不好看这类说不清对错的任务,塞进 while True 只会空转烧 token。
给循环上三道闸也是必须的:轮次上限防死循环、token 预算防成本失控、每轮失败原因落盘供复盘。实操上还有个便宜又有效的习惯——让 Agent 在独立 worktree 或分支干活,验证全绿再合并,绝大多数「半成品 diff 进仓库」的事故都能被这一步挡住。
摊开对照 DevOps
Loop 这套东西和 CI/CD 管道的相似度高到难以忽视:
| 环节 | 传统 DevOps | Agent Loop |
|---|---|---|
| 触发 | Push、Webhook、定时 | Issue、任务队列、用户请求 |
| 隔离 | Docker、CI Runner | Worktree、Sandbox |
| 执行 | 固定脚本 | 读了上下文再动态行动 |
| 验证 | ESLint、Jest、构建脚本 | 同一批确定性工具 |
| 失败处理 | 通知人改 | 提取错误反馈给模型再改 |
差异集中在「修复动作」一格。还有一个细节很能说明问题:验证环节至今交给确定性工具,没人敢让大模型「看一眼觉得没问题」当裁判。概率模型提修改,确定性工具做裁决,这个分工短期不会松动。
再往上归纳,这批新词在旧工程里全有原型:Prompt 对应输入协议设计,Context 对应知识管理与检索,Harness 对应执行环境封装,Loop 对应自动化测试与反馈,Multi-Agent 对应服务拆分,Planner 对应工作流编排。所谓 Agent 工程化,更准确的说法是模型被接入了成熟的软件工程系统。
验收清单
与其背名词,不如逐项给自己的系统打分:上下文是否足够、相关、不过量;改动是否可回滚、依赖可复现;失败能否稳定复现并形成清晰反馈;循环有没有定义何时继续、何时停、何时交给人;状态记录能否回答每轮改了什么、为什么改。五项过硬,新词随便涨。
Agent 的价值不在于把 DevOps 抛到一边,而在于给那套老机制配了一个可调度的智能执行者。地基打牢,名词只是标签。

评论0