AI智能体Harness架构设计深度拆解与实现全解析
摘要
开发一个能对话的机器人并不困难,甚至给它挂载几个工具,实现基础的“思考→行动→观
开发一个能对话的机器人并不困难,甚至给它挂载几个工具,实现基础的“思考→行动→观察”闭环,在demo阶段也能顺利跑通。但当你试图把它升级为生产级系统时,问题就蜂拥而至:模型忘记三步前的操作,工具调用悄无声息地失败,上下文窗口里塞满冗余信息。
问题的根源通常不在模型本身,而是包裹模型的那层基础设施。
LangChain 给出了一个有力的实证:当他们只优化了大语言模型周围的基础设施(模型权重未变),其智能体在 TerminalBench 2.0 上的排名从三十名开外直接跃升至第五。另一项研究让大语言模型自行优化运行环境,任务通过率达到了 76.4%,甚至超过了人工设计的系统。
这套至关重要的基础设施,如今有了正式名称:智能体驾驭层。

一、什么是智能体 Harness?
“智能体驾驭层”这个术语在 2026 年初被正式提出,但其概念早已在实践中落地。它指的是包裹大语言模型的完整软件基础设施,包括编排循环、工具调用、记忆系统、上下文管理、状态持久化、错误处理和安全护栏等。Anthropic 在 Claude Code 的文档中说得非常直白:其 SDK 就是“驱动 Claude Code 的智能体 Harness”。OpenAI 的 Codex 团队也使用了同样的表述,明确将“智能体”和“Harness”等同起来,指代那些让大语言模型真正有用的、模型之外的一切。
LangChain 的 Vivek Trivedy 给出了一句精辟总结:“如果你不是模型,你就是 Harness。”

这里需要区分一个容易混淆的概念。“智能体”是最终涌现出来的行为——那个目标导向、使用工具、自我修正、并与用户交互的实体。而 Harness 则是产生这种行为的“机器”。当有人说“我构建了一个智能体”时,其真实含义往往是他们构建了一个 Harness,然后将其指向了一个模型。

Beren Millidge 在 2024 年的文章《脚手架式大语言模型作为自然语言计算机》中给出了一个精准类比:一个原始的大语言模型,就像一台没有内存、没有硬盘、没有输入输出设备的 CPU。上下文窗口充当了内存(快速但容量有限),外部数据库充当了硬盘(容量大但速度慢),工具集成则如同设备驱动程序。而 Harness,就是那个将一切整合起来的操作系统。正如文中所言:“我们重新发明了冯·诺依曼架构”,因为这是任何计算系统最自然的抽象。
二、三个工程层级
围绕模型,存在三个同心圆式的工程层级:
- 提示工程:精心雕琢模型接收到的指令。
- 上下文工程:管理模型在何时看到何种内容。
- 驾驭工程:涵盖以上两者,并扩展至整个应用基础设施,包括工具编排、状态持久化、错误恢复、验证循环、安全执行和生命周期管理。
Harness 不仅仅是提示词的包装,它是让自主智能体行为成为可能的完整系统。
三、生产级 Harness 的 12 个组件
综合 Anthropic、OpenAI、LangChain 及业界最佳实践,一个生产级的智能体 Harness 通常包含十二个核心组件。

1. 编排循环
这是整个系统的心跳,实现了思考-行动-观察循环。其机制通常就是一个简单的 while 循环,但复杂性蕴藏在循环所管理的所有环节中。Anthropic 将其运行时描述为一个“笨循环”,所有智能都存在于模型内部,Harness 只负责管理轮次。
2. 工具
工具是智能体的双手。它们被定义为包含名称、描述和参数类型的模式,并注入到大语言模型的上下文中。工具层负责注册、模式验证、参数提取、沙盒化执行、结果捕获,并将结果格式化为模型可读的观察内容。
3. 记忆
记忆系统在多个时间尺度上运作。短期记忆指单次会话内的对话历史;长期记忆则跨会话持久化。Claude Code 实现了一个三层结构:始终加载的轻量级索引、按需拉取的详细主题文件,以及仅通过搜索访问的原始文本。一个关键设计原则是:智能体将自己的记忆视为“提示”,并在行动前针对实际状态进行验证。
4. 上下文管理
这是许多智能体无声失败的地方,核心问题是“上下文腐烂”。研究表明,当关键信息落在上下文窗口的中间位置时,模型性能可能下降 30% 以上。即使拥有百万 token 的窗口,随着上下文增长,指令遵循能力也会下降。
生产级的应对策略包括:接近限制时压缩对话历史、屏蔽旧的工具输出但保留调用可见、维护轻量级标识符并动态加载数据,以及将广泛探索的任务委托给子智能体,由其返回浓缩摘要。
5. 提示词构建
该组件负责在每一步组装模型实际看到的内容,采用分层结构:系统提示词、工具定义、记忆文件、对话历史以及当前用户消息。
6. 输出解析
现代 Harness 依赖模型的原生工具调用功能,直接返回结构化的 tool_calls 对象,而非需要解析的自由文本。对于需要结构化输出的场景,可以通过 Pydantic 等模型进行约束。
7. 状态管理
不同框架有不同实现。LangGraph 将状态建模为流经图节点的类型化字典;OpenAI 提供多种策略;Claude Code 则采用了独特的方法,利用 git 提交作为检查点,用进度文件作为结构化的草稿本。
8. 错误处理
错误处理至关重要。一个 10 步的流程,如果每一步的成功率是 99%,其端到端的成功率也只有约 90.4%。错误会快速复合。生产系统需要区分瞬态错误、模型可恢复错误、用户可修复错误和意外错误,并采取相应策略。
9. 护栏与安全
安全架构通常分为多个层级:输入护栏、输出护栏和工具调用护栏。一个核心原则是将权限执行与模型推理分离:模型决定尝试什么,工具系统决定允许什么。
10. 验证循环
这是区分玩具演示和生产级系统的关键。常见的验证方法包括基于规则的反馈(如测试、linter)、视觉反馈(如 UI 截图)以及使用另一个大语言模型作为裁判进行评估。
11. 子智能体编排
当任务复杂时,需要协调多个智能体。Claude Code 支持 Fork、Teammate 和 Worktree 三种执行模型;OpenAI SDK 支持智能体作为工具或完全控制权的交接;LangGraph 则将其实现为嵌套的状态图。
四、循环运转:逐步拆解
了解了各个组件后,让我们追踪它们如何在一个循环中协同工作。

- 提示词组装:Harness 构建完整输入,并将重要上下文放置在提示词的开头和结尾。
- 大语言模型推理:组装的提示词被发送至模型 API。
- 输出分类:解析模型输出。若仅为文本则循环结束;若请求工具调用则进入执行阶段;若请求交接则更新当前智能体。
- 工具执行:验证参数、检查权限、在沙盒中执行并捕获结果。
- 结果打包:将工具结果格式化为模型可读的消息,错误也被捕获并返回以供模型自我纠正。
- 上下文更新:将结果追加到对话历史,并在接近窗口限制时触发压缩。
- 循环:返回第一步,重复直至满足终止条件(如无工具调用、达到轮次限制、触发安全护栏等)。
对于跨越多个上下文窗口的长时间任务,可以采用两阶段模式:一个初始化智能体设置环境,后续的编码智能体通过读取持久化状态(如 git 日志)来定位自己,继续工作。
五、真实 Harness 如何实现这一模式
各大厂商和框架的实现各有侧重:
- Anthropic Claude Agent SDK:通过一个
query()函数暴露 Harness,其运行时是一个“笨循环”。Claude Code 则采用收集-行动-验证的循环模式。 - OpenAI Agents SDK:通过
Runner类实现,强调“代码优先”。其 Codex Harness 采用三层架构,确保不同客户端界面共享同一套核心能力。 - LangGraph:将 Harness 建模为显式的状态图,通过条件边连接不同节点,提供了清晰的可视化和控制流。
- CrewAI:实现了基于角色的多智能体架构,通过 Agent、Task、Crew 三层抽象来组织协作。
- AutoGen:开创了对话驱动的编排模式,支持顺序、并发、群聊等多种协作范式。
六、脚手架隐喻
“脚手架”这个比喻并非装饰,而是精确的。建筑脚手架是临时基础设施,让工人能够到达原本无法触及的高度进行建造。它本身不参与建造,但没有它,工程就无法推进。

关键在于:建筑完工时,脚手架会被拆除。随着模型能力的提升,Harness 的复杂性理应降低。业界观察到一个共同进化原则:模型会在特定的 Harness 环境下进行后训练,从而与之紧密耦合。因此,Harness 设计需要面向未来:如果更强大的模型能够带来性能提升,而无需增加 Harness 的复杂性,那么这个设计就是合理的。

七、定义每个 Harness 的七个决策
每个 Harness 架构师都面临七个核心选择:

- 单智能体 vs. 多智能体:主流建议是先最大化单智能体的能力。多智能体会增加开销,仅在工具过载或任务域明显分离时才考虑拆分。
- ReAct vs. 计划-执行:ReAct 每步都交错推理与行动,灵活但单步成本高;计划-执行则分离两者,据报道速度可提升数倍。
- 上下文窗口管理策略:可在基于时间的清除、对话总结、观察屏蔽、结构化笔记和子智能体委托等方法中选择。
- 验证循环设计:在提供确定性反馈的计算验证(测试)与能捕获语义问题但增加延迟的推理验证(大语言模型裁判)之间权衡。
- 权限和安全架构:在宽松(快速但高风险)与严格(安全但缓慢)之间取得平衡,取决于具体的部署环境。
- 工具范围策略:更多工具通常意味着更差的性能。原则是只暴露当前步骤所需的最小工具集。
- Harness 厚度:决定多少逻辑放在 Harness 中,多少留给模型。这是一个关键的架构赌注。
八、Harness 就是产品
最终,两个使用相同底层模型的产品,其性能差异可能完全由 Harness 的设计决定。TerminalBench 的结果已经清晰地表明,仅改变 Harness 就能让智能体排名大幅跃升。
Harness 远非一个已解决的问题或可商品化的层次,这里才是硬核工程的所在:管理稀缺的上下文资源、设计能在失败复合前将其捕获的验证循环、构建提供连续性而又不产生幻觉的记忆系统,以及做出关键的架构决策。
这个领域正朝着更“薄”的 Harness 演进,因为大模型本身在变得更聪明。但 Harness 不会消失。即使是最强大的模型,也需要某种机制来管理它的上下文、执行它的工具调用、持久化它的状态,并验证它的工作。
所以,下次当你的智能体表现不佳时,先别急着责怪模型。不妨看看,它的“驾驭层”是否足够出色。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。