智能体 Harness 是什么:定义与组成部分
智能体 Harness 是 AI 智能体中包围语言模型、使其成为可用工具的一切:指令、工具、运行环境、跨会话状态以及反馈回路。公式是:智能体 = 模型 + Harness。模型负责推理,Harness 则提供规则、双手、记忆和结果验证。
定义
智能体 Harness(agent harness)是包围语言模型的软件外壳:除模型本身之外、但会影响智能体工作方式的一切。公式是:智能体 = 模型 + Harness。模型擅长推理和编写代码,而 Harness 决定它能看到什么、能用什么工具行动、命令在哪里执行、哪些内容在会话之间保留,以及它如何得知自己出了错。
Harness 的五个组成部分
- 指令——系统提示词以及
CLAUDE.md、AGENTS.md等项目文件、专题文档和 skills。 - 工具——在 shell 中执行命令、编辑文件、浏览器,以及通过 MCP 接入的服务。
- 环境——沙箱或容器,智能体在其中运行代码而不会危及生产系统。
- 状态——计划文件、进度文件、git 历史:能够在会话结束后保留下来的记忆。
- 反馈——测试、代码检查器、类型检查、钩子,它们把错误信号返回给智能体。
Harness 不只是一个提示词文件。如果智能体无法访问测试,或者环境无法启动,那么再长的 AGENTS.md 也没有用。可靠性由五个部分中最薄弱的那一个决定。
示例
智能体连续三次会话都在修同一个 bug:每次重启之后,它都不记得自己已经试过什么。看起来像是模型的问题,实际上是状态子系统坏了。解决办法是一个 PROGRESS.md 文件:智能体在每次会话结束时,把失败的假设和下一步记录在里面:
## Bug:重复请求导致重复扣款
已验证且被否决:
- HTTP 客户端超时——无影响
- webhook 处理器中的竞争条件——无法复现
下一步:检查 payments/service.py 中的幂等键
新会话读取这个文件,就能直接从正确的位置继续。模型没有变,变的是 Harness。
总结
智能体的 Harness 就是模型周围的指令、工具、环境、状态和反馈。正是它决定同一个智能体是能够稳定工作,还是频繁出错。每个部分具体如何搭建,都在 Harness 工程课程中结合实践做了讲解。
常见问题
Harness 与智能体框架有什么区别?
框架是可以用来搭建智能体的库。Harness 是针对你的项目对模型进行的具体配置:规则、权限、环境、测试和状态文件。Claude Code 这样的现成智能体已经包含基础 Harness,你需要在其上补充自己的部分。
Harness 和提示词是同一个东西吗?
不是。提示词只是指令子系统的一部分。Harness 还包括工具、环境、会话间的记忆以及结果验证。
应该先从 Harness 的哪个部分开始?
从反馈开始:给智能体一组它能自己运行、用来检查工作的命令。这能最快地减少流向人工审核环节的错误。