Agent工程四阶段拆开看:表达、上下文、执行与修正

一段几行长的伪代码,差不多就是这两年 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

评论0

请先
显示验证码
没有账号?注册  忘记密码?