Agent 构建方法
核心公式:Agent = Model + Harness
Harness = Agent 减去 Model —— 在一个 Agent 系统里,除了模型本身以外,几乎所有决定它能不能稳定交付的东西,都算 Harness。

一、三代工程演进(包含关系,非替代关系)
| 阶段 | 核心问题 | 优化对象 | 擅长 | 局限 |
|---|
| Prompt Engineering | 模型有没有听懂你在说什么? | 指令的表达 | 定义任务、约束输出、激发模型已有能力 | 无法弥补缺失知识、无法管理动态信息、无法处理长链路状态 |
| Context Engineering | 模型有没有拿到足够且正确的信息? | 输入环境(信息的供给) | 在合适时机把正确信息送进模型 | 信息给对了,模型也不一定能稳定执行正确 |
| Harness Engineering | 模型在真实执行中能不能持续做对? | 整个运行系统 | 持续观测、持续纠偏、最终验收结果 | — |
边界递增关系:Prompt ⊂ Context ⊂ Harness
- Prompt 是 Context 的一部分;
- Context 是 Harness 的一部分;
- Harness 是对整个运行系统的工程化。
拜访客户类比
| 层次 | 对应动作 | 重点 |
|---|
| Prompt | 把任务讲清楚:先自我介绍 → 介绍方案 → 分析需求 → 确定下一步 | 把话说明白 |
| Context | 准备资料:客户背景、沟通记录、报价、竞品情况、会议目标 | 把信息给对 |
| Harness | 让技术专家陪同、关键节点实时汇报、发现偏差马上纠正、按标准验收结果 | 持续观测 + 纠偏 + 验收 |
二、成熟 Harness 的六层架构
第一层:上下文管理(Context Layer)
原则:模型能够在正确的信息边界内思考。
| 检查项 | 说明 |
|---|
| 角色 / 目标 / 成功标准 | 模型知道自己是谁、任务是什么、什么算做好 |
| 信息裁剪与选择 | 上下文不是越多越好,而是越相关越好 |
| 结构化组织 | 固定规则、动态任务、运行状态、外部检索结果 —— 分层清楚,避免自我污染 |
| 渐进式披露(SGAO 思路) | 不一次性暴露全部能力描述,只给最少量元信息;需要时再动态加载详细 SOP / 参数 / 脚本 |
| Context Refresh 机制 | 上下文过长时,不仅压缩,更要换一个干净的新上下文将工作交接过去(类似进程重启而非清缓存) |
原则:模型从"文本预测器"变成"能做事的执行者"。
| 检查项 | 说明 |
|---|
| 工具集合理性 | 工具太少 → 能力不够;工具太多 → 模型乱用。需精心选择 |
| 调用时机控制 | 不该查时别乱查,该查时别硬答 |
| 结果回流处理 | 工具返回的大量结果不应原封不动塞回模型,需提炼、筛选、保持与任务的相关性 |
第三层:执行编排(Orchestration Layer)
原则:模型下一步该做什么,必须有轨道。
| 检查项 | 说明 |
|---|
| 任务分解 | 将模糊需求拆解为模型能执行的小任务 |
| 标准执行流程 | 理解目标 → 判断信息是否充足 → 不足则补充检索 → 分析 → 生成输出 → 检查输出 → 不满足则修正/重试 |
| 防止"想到哪做到哪" | 避免模型自由发散,确保交付完整而非半成品 |
第四层:记忆与状态(Memory & State Layer)
原则:没有状态的 Agent 像失忆者,不知道自己做了什么。
| 检查项 | 说明 |
|---|
| 当前任务状态 | 当前进行到哪一步、中间结果是什么 |
| 进化中的中间结论 | 哪些结论已确认、哪些问题还未解决 |
| 长期记忆与用户偏好 | 跨会话持久化的信息 |
| 三类分离 | 以上三类必须分开管理,混在一起系统会越来越乱 |
第五层:评估与观测(Evaluation & Observability Layer)
原则:系统不仅要会做,还要知道自己有没有做对。
| 检查项 | 说明 |
|---|
| 输出验收标准 | 明确的、可检查的交付标准 |
| 环境验证 | 不只看代码/文本,要在真实环境中操作、截图、检查实际结果 |
| 自动化测试 | 可重复运行的测试用例 |
| 日志与指标追踪 | 可查 Log、查监控 |
| 生产与验收分离 | 干活的人和验收的人必须分开(避免自评偏乐观)—— Planner / Implementer / Evaluator 角色分离 |
第六层:约束、校验与失败恢复(Guardrails & Recovery Layer)
原则:在真实环境里,失败不是例外而是常态。
| 检查项 | 说明 |
|---|
| 约束(Constraints) | 明确哪些能做、哪些不能做 |
| 校验(Validation) | 输出之前和输出之后都要检查 |
| 恢复(Recovery) | 失败后能重试、切换路径、或回滚到稳定状态 |
| 隔离环境 | 每个任务在独立沙箱中运行,互不影响 |
三、一线公司实践要点
Anthropic 实践
| 实践 | 要点 |
|---|
| Context Refresh(上下文刷新) | 上下文过长时不只是压缩,而是启动一个全新干净的 Agent 并交接工作状态(类似进程重启) |
| 生产 / 验收分离 | Planner 负责需求 → 规格;Implementer 负责逐步实现;Evaluator 像 QA 一样真实操作页面、检查交互结果 |
| Evaluator 真实验证 | 不是抽象审查代码,而是在具体环境中操作、截屏、检查实际行为 |
OpenAI 实践
| 实践 | 要点 |
|---|
| 人类角色转变 | 工程师不写逐行代码,而是设计环境:拆解任务 → 补充缺失能力 → 建立反馈回路 |
| Agent 自测闭环 | Agent 接浏览器截图 + 日志系统 + 指标系统,能自己跑、看结果、发现 Bug、修复、再验证 |
| 经验规则化 | 资深工程师经验写成系统规则(模块分层、依赖约束、拦截条件、修复方法),规则不只报错,还把"怎么修"一起反馈给 Agent |
| 隔离执行 | 每个任务在独立沙箱环境运行 |
Cursor 实践
| 实践 | 要点 |
|---|
| 渐进式披露 | 早期把所有规范塞进一个巨大的 .md 导致 Agent 更混乱;改为目录式引导,核心文件只保留索引,详细内容拆分到子文档,按需加载 |
| 上下文窗口是稀缺资源 | 塞得太满 ≈ 什么都没说;信息不是一次性全给,而是按需暴露 |
四、评估清单(对标检查用)
对任意 Agent 系统,逐项检查是否满足以下标准:
A. Prompt 层面
B. Context 层面
C. 工具系统
D. 执行编排
E. 记忆与状态
F. 评估与观测
G. 约束、校验与恢复
五、核心认知
- 同样的模型,不同的 Harness,表现差距巨大——真正决定上限的可能是模型,但决定能不能落地、能不能稳定交付的是 Harness。
- Agent 出了问题时,修复方向几乎从来不是"让它更努力",而是"确定它缺了什么结构性能力"。
- AI 落地的核心挑战正在从"让模型看起来更聪明"转向"让模型在真实世界里稳定工作"。
- 上下文窗口是稀缺资源——信息优化不只是给得更多,而是按需给、分层给、在正确的时机给。
- 生产和验收必须分离——只要评估者足够独立,系统就能形成有效的"生成 → 检查 → 修复 → 再检查"循环。