Agent Harness 设计指南:Coding Agent 实践
一个 Agent 由两部分组成:模型,以及模型之外的一切——Harness。本文从一句最简单的对话出发,拆解 Agent 从代码到 next token 的完整链路,再依次讨论 Context、Memory、Long-Horizon、Multi-Agent 四个方向的设计取舍,最后讨论如何通过评测与生产反馈让 Harness 和模型持续进步。
全文围绕三个问题展开:
| 问题 | 内容 |
|---|---|
| 机制是什么? | 从 Agent 代码到 next token,一次本地文件查询如何完成 |
| 设计怎么选? | Context、Memory、Long-Horizon、Multi-Agent |
| 如何持续改进? | Harness 拓展场景,场景反馈推动模型进步 |
三个问题层层递进:先看清机制,否则设计决策只能凭感觉;再基于机制做出取舍;最后用评测判断改得对不对。
核心观点
- Agent = Model + Harness。 模型只做一件事:根据已有内容预测 next token。工具执行、上下文组织、状态管理、调度与评测,模型之外的一切都是 Harness。
- 能力在模型,Harness 负责释放与对齐。 Harness 不创造智能,它决定模型的能力能发挥出多少,以及是否用在正确的方向上。
- Context Engineering 是 Harness 的核心工作。 每次生成前,提供刚好足以支撑下一步行动的上下文:能力按需加载,上下文 append-only 以命中 prefix cache,窗口吃紧时由模型主动压缩。
- 记忆走”简单架构 + 依赖模型进步”的路线。 目录树 + Markdown + BM25/grep,画像常驻、经验渐进加载;评测的是带记忆的 Agent 在真实任务上的成功率与 token 消耗,而不只是记忆问答分数。
- 长程任务靠两个支点: Harness 工程的稳定性,以及长时间的目标保持(目标压缩 + 状态 offload 到磁盘)。
- Multi-Agent 的瓶颈在模型的协作能力, Harness 负责提供状态、消息与交接接口。
- 持续改进是一个闭环: 生产执行 → Harness 验证与演进 → 模型能力内化 → 更强模型与新场景。Harness 改进先回到生产,可迁移的能力再通过训练进入模型。