
过去我们谈 AI 编程,注意力大多放在模型上:哪个模型更强,哪个上下文更长,哪个写代码更快。但真正把模型带进工程现场以后,很快会发现另一个问题:模型本身并不能直接完成软件开发。
模型只能生成文本。它不会天然知道你的仓库结构,不会自己读取文件,不会运行测试,不会创建分支,也不会判断某个命令是否会删库。让它从“会回答问题”变成“能完成工程任务”,中间需要一层执行外壳,这层外壳就是 Agent Harness。
可以先给一个简单定义:
Agent Harness 是把大模型、代码仓库、工具调用、上下文管理、权限控制和验证流程连接起来的工程运行层。
Claude Code、Codex CLI、Cursor Agent、OpenCode 这类工具,表面上是“AI 编程助手”,更准确地说,是围绕模型构建的 Agent Harness。模型负责推理,Harness 负责让它安全、可控、可验证地接触真实工程环境。
不是聊天框,而是执行系统
传统聊天框的工作方式很简单:用户问,模型答。即便它给你一段代码,也只是文本。你要自己复制、粘贴、运行、调试。
Agent Harness 的工作方式不一样。你可以说:
修复登录失败后没有刷新用户信息的问题,补测试并运行相关测试。
一个成熟的 Harness 会把这句话拆成一串动作:理解项目结构,搜索登录相关代码,读取文件,判断状态刷新逻辑,修改实现,补测试,运行测试,查看失败信息,再继续修正。
这不是简单的问答,而是一个带反馈的执行循环。

这里真正关键的是循环。模型每一步都不是凭空猜,而是根据工具返回的信息继续判断。Harness 的价值,就是把这个循环组织起来。
Harness 包含什么
一个实际可用的 Agent Harness,至少包含六类能力。
第一是上下文管理。它决定模型能看到什么:当前文件、相关文件、终端输出、Git diff、项目规则、历史记忆、外部文档。上下文给少了,模型会猜;给多了,模型会被噪声淹没。
第二是工具系统。读文件、写文件、搜索、运行测试、调用浏览器、访问数据库、读设计文档,这些都不是模型能力,而是 Harness 暴露给模型的工具能力。
第三是执行环境。代码在哪运行?本机、容器、云端 VM,还是受限沙箱?不同执行环境决定了 Agent 能做什么,也决定了风险边界。
第四是权限控制。哪些命令能直接跑,哪些必须确认,哪些永远禁止。没有权限层,Agent 越强越危险。
第五是验证机制。写完代码不能只看起来对,还要能运行测试、类型检查、lint、构建,必要时还能打开页面做视觉验证。
第六是会话和记忆。一次任务可能跨多个回合,长期项目还需要记录构建命令、代码规范、常见坑和团队约定。
为什么不能只靠长上下文
很多人会把 Agent 的问题归结为上下文不够长。上下文确实重要,但不是唯一答案。
如果把整个仓库都塞给模型,会遇到三个问题。
第一,成本高。代码库越大,Token 越贵,响应越慢。
第二,噪声大。模型看到太多不相关文件,反而更难判断真正入口。
第三,不可验证。模型即便读了很多代码,仍然需要运行测试确认行为。
所以成熟的 Harness 不追求“把所有东西塞进去”,而是追求“在需要的时候拿到正确上下文”。这也是 CodeGraph、Understand-Anything、MCP、Rules、Skills 这些工具出现的原因:它们都在帮助 Harness 更准确地组织上下文和执行过程。
一个真实例子
假设线上报错:
订单支付成功后,偶尔没有更新订单状态。
裸模型可能会给你一段通用建议:检查回调、检查数据库事务、检查日志。听起来都对,但没法直接落地。
Agent Harness 会更具体:
- 查找支付回调入口;
- 读取订单状态流转代码;
- 搜索消息队列消费者;
- 查看失败测试或日志;
- 修改幂等逻辑或事务边界;
- 补充回调重复投递测试;
- 运行相关测试;
- 输出影响范围。
这才接近真实工程师做事的方式。
Harness 的边界
Agent Harness 不是魔法。它能提高执行效率,但不能替代工程判断。
它可能读错代码,可能误判业务语义,可能运行了不完整的测试,也可能在动态调用、反射、运行时配置面前漏掉真实关系。因此,好的 Harness 一定要把人放在循环里:计划要可审查,命令要可确认,改动要可回滚,结果要可验证。
从这个角度看,Agent Harness 的成熟度不在于“它能不能自动写很多代码”,而在于“它能不能把工程任务拆成可观察、可控制、可验证的过程”。
总结
大模型是推理核心,但不是完整工程系统。Agent Harness 才是把模型接到代码仓库、终端、工具、规则和验证流程上的关键层。
未来 AI 编程工具的竞争,不会只看模型参数,也会看 Harness 的工程能力:上下文是否精准,工具是否好用,权限是否安全,测试是否能闭环,团队规则是否能沉淀。
简单说:
模型负责想,Harness 负责让它在真实工程里做事。