AI驾驭工程系列:3 Harness Engineering 架构设计

为什么我们需要驾驭层

有些事情我们希望智能体去做,但模型开箱即用是做不到的。这就是驾驭层发挥作用的地方。

模型(主要)接收文本、图像、音频、视频等数据,然后输出文本。仅此而已。开箱即用,它们无法:

  • 在多次交互之间维持持久状态
  • 执行代码
  • 访问实时知识
  • 设置环境并安装软件包以完成工作

这些都是驾驭层级别的功能。LLM 的结构要求必须有某种机制将其包裹起来才能完成有用的工作。

例如,要实现“聊天”这样的产品体验,我们需要将模型包裹在一个 while 循环中,以跟踪先前的消息并追加新的用户消息。阅读本文的每个人都用过这种驾驭层。核心思想是:我们将期望的智能体行为转化为驾驭层中的实际功能。

从期望的智能体行为逆向推导驾驭层工程

驾驭层工程帮助人类注入有用的先验知识来引导智能体行为。随着模型能力越来越强,驾驭层被用来精确地扩展和纠正模型,以完成以前不可能完成的任务。

我们将遵循这样的模式:我们想要的(或想要修复的)行为 → 帮助模型实现这一目标的驾驭层设计。

image.png

1. 文件系统:持久化存储与上下文管理

我们期望的行为: 智能体拥有持久化存储,以便与真实数据交互、卸载无法放入上下文的信息,并跨会话保持工作成果。

模型只能直接在其上下文窗口内操作知识。在文件系统出现之前,用户必须直接复制/粘贴内容给模型,这种用户体验很笨拙,而且对自主智能体行不通。世界早已在使用文件系统完成工作,因此模型自然在数十亿 tokens 的训练数据中学习到了如何使用它们。自然的解决方案变成了:

驾驭层配备文件系统抽象和文件操作工具。

文件系统可以说是最基础的驾驭层原语,因为它解锁了以下能力:

  • 工作空间: 智能体可以读取数据、代码和文档。
  • 增量工作: 工作可以逐步添加和卸载,而不是全部保存在上下文中。智能体可以存储中间输出,并维持超出单次会话的状态。
  • 协作表面: 文件系统是自然的协作界面。多个智能体和人类可以通过共享文件进行协调。像智能体团队(Agent Teams) 这样的架构依赖于此。
  • 版本控制: Git 为文件系统增加了版本管理,使智能体能够跟踪工作、回滚错误和分支实验。

我们将在下文再次提到文件系统,因为它实际上是其他所需功能的关键驾驭层原语

2. Bash + 代码:通用工具

我们期望的行为: 智能体能够自主解决问题,无需人类预先设计每一个工具。

今天的主流的智能体执行模式是 ReAct 循环,模型推理、通过工具调用采取行动、观察结果、重复循环。但驾驭层只能执行它们拥有逻辑的工具。与其强迫用户为每一个可能的动作都构建工具,不如给智能体一个通用工具如 Bash

驾驭层配备 Bash 工具,让模型通过编写和执行代码自主解决问题。

Bash + 代码执行是向模型提供一台计算机并让它自主解决其余问题的重要一步。模型可以通过代码即时设计自己的工具,而不是受限于固定的预配置工具集。

驾驭层仍然配备其他工具,但代码执行已成为自主问题解决的默认通用策略

3. 沙盒与工具:执行与验证工作

我们期望的行为: 智能体需要具备正确默认配置的环境,以便安全地行动、观察结果并取得进展。

我们已经赋予模型存储能力和执行代码的能力,但所有这些都需要在某个地方发生。在本地运行智能体生成的代码是危险的,而且单一的本地环境无法扩展到大规模智能体工作负载。

沙盒(Sandboxes) 为智能体提供了安全的操作环境。驾驭层不再在本地执行,而是可以连接到沙盒来运行代码、检查文件、安装依赖并完成任务。这创造了代码的安全、隔离执行。为了更高的安全性,驾驭层可以设置命令白名单并强制网络隔离。

沙盒还解锁了规模化能力,因为环境可以按需创建、分散到众多任务中,并在工作完成后销毁。

良好的环境配备良好的默认工具。驾驭层负责配置工具,使智能体能够完成有用的工作。这包括预装语言运行时和软件包、Git 和测试用的 CLI、用于网页交互和验证的浏览器。

浏览器、日志、截图和测试运行器等工具赋予智能体观察和评估其工作的方式。这帮助它们创建自我验证循环,编写应用代码、运行测试、检查日志、修复错误。

模型开箱即用不会配置自己的执行环境。决定智能体在哪里运行、有哪些工具可用、能访问什么、如何验证其工作,这些都是驾驭层级别的设计决策

4. 记忆与搜索:持续学习

我们期望的行为: 智能体应该记住它们见过的东西,并能访问在它们训练时还不存在的信息。

模型除了权重和当前上下文中的内容外,没有额外的知识。在不修改模型权重的情况下,“增加知识”的唯一方式是通过上下文注入

对于记忆,文件系统再次成为核心原语。驾驭层支持 AGENTS.md 等记忆文件标准,这些文件在智能体启动时被注入上下文。随着智能体添加和编辑此文件,驾驭层将更新后的文件加载到上下文中。这是一种持续学习的形式,智能体在一个会话中持久存储知识,并在未来会话中注入这些知识。

知识截止日期意味着模型无法直接访问新数据,比如更新的库版本,除非用户直接提供。为了获取最新知识,网页搜索Context7 等 MCP 工具帮助模型访问超出知识截止日期的信息,比如新的库版本或训练停止后才出现的当前数据。

网页搜索和用于查询最新上下文的工具是驾驭层中值得内置的有用原语。

5. 对抗上下文退化(Context Rot)

我们期望的行为: 智能体性能不应随着工作进展而下降。

上下文退化(Context Rot) 描述了模型随着上下文窗口填满,在推理和完成任务方面变得更差的现象。上下文是宝贵且稀缺的资源,因此驾驭层需要策略来管理它。今天的驾驭层很大程度上是优秀上下文工程的交付机制。

  • 压缩(Compaction): 解决了当上下文窗口接近填满时该怎么办的问题。没有压缩时,当对话超出上下文窗口会发生什么?一种选择是 API 报错,这不太好。驾驭层必须对这种情况使用某种策略。因此,压缩智能地卸载和总结现有上下文窗口,让智能体能够继续工作。
  • 工具调用卸载(Tool call offloading): 有助于减少大型工具输出的影响,这些输出可能会嘈杂地混乱上下文窗口,却不提供有用信息。驾驭层保留超过阈值 tokens 数的工具输出的头部和尾部,并将完整输出卸载到文件系统,以便模型在需要时可以访问。
  • 技能(Skills): 解决了在智能体启动时将过多工具或 MCP 服务器加载到上下文中导致性能下降的问题(在智能体开始工作前就退化性能)。技能是一种驾驭层级别的原语,通过渐进式披露(progressive disclosure) 解决这个问题。模型并没有选择在启动时将技能前言加载到上下文中,但驾驭层可以支持这一点,以保护模型免受上下文退化的影响。

6. 长时程自主执行

我们期望的行为: 我们希望智能体能够在长时程内自主、正确地完成复杂工作。

自主软件创建是编程智能体的圣杯。但今天的模型存在提前停止(early stopping)复杂问题分解困难以及跨多个上下文窗口工作时的不连贯性等问题。优秀的驾驭层必须围绕所有这些进行设计。

这就是前面的驾驭层原语开始产生复合效应的地方。长时程工作需要持久状态、规划、观察和验证,以便在多个上下文窗口中持续工作。

  • 文件系统和 Git: 用于跨会话跟踪工作。智能体在长任务中产生数百万 tokens,因此文件系统持久地捕获工作,以便随时间跟踪进度。添加 Git 允许新智能体快速了解项目的最新工作和历史。对于多个智能体一起工作,文件系统也充当工作的共享账本,智能体可以在此协作。
  • Ralph 循环(Ralph Loops): 用于继续工作。Ralph 循环是一种驾驭层模式,它通过钩子拦截模型的退出尝试,并在干净的上下文窗口中重新注入原始提示,强制智能体针对完成目标继续其工作。文件系统使这成为可能,因为每次迭代都以全新的上下文开始,但会读取前一次迭代的状态。
  • 规划与自我验证: 用于保持正轨。规划是模型将目标分解为一系列步骤的过程。驾驭层通过优秀的提示工程和在文件系统中注入如何使用计划文件的提醒来支持这一点。在完成每一步后,智能体通过自我验证来检查其工作的正确性,从而受益。驾驭层中的钩子可以运行预定义的测试套件,并在失败时带着错误消息循环回到模型,或者可以提示模型独立评估其代码。验证将解决方案建立在测试中,并创建自我改进的反馈信号。

在全局 AI 原生架构中的位置

1.核心架构定律: 重新定义 Harness 驾驭层

在企业级 AI 原生应用落地中,我们必须遵循第一性原理来进行架构推演:

  • 定律一: 智能体(Agent) = 模型(Model) + 驾驭层(Harness)。
  • 定律二: AI 原生应用系统 = 功能侧架构 + 治理侧架构。
  • 推论(架构师的终极视角): 驾驭层(Harness) = (功能侧架构 + 治理侧架构) - 模型层。

核心认知: 不要将驾驭层狭隘地理解为几行 Prompt 拼接代码。在企业级落地中,为了让不可控、无状态的大模型变成稳定打工的 Agent,我们搭建的整个庞大外围系统(包括网关、消息队列、记忆库、评估监控等),统统都是人类为了“驾驭”模型而打造的工程化物理实体。

2.驾驭层与“功能侧架构”的映射: 为模型装上四肢与记忆

功能侧架构的作用是保证用户请求完整的执行。在这里,Harness 具象化为调度中心、外部感官和存储大脑。

第一、编排与循环控制(大脑中枢): Agent 业务逻辑层 & 消息队列层

第二、持久化状态维持(外部记忆): 记忆系统层 & 知识层

第三、工具调用与安全隔离(感官与边界): 三大网关层

3.驾驭层与“治理侧架构”的映射: 为模型装上免疫与神经系统

治理侧架构的作用是保证整个 AI 原生应用系统的稳健性。在这里,Harness 具象化为确保系统确定性、可控性的底层支撑。

第一、确定性执行的钩子(验证循环): AI 评估体系

第二、动态上下文配置与协作发现: AI 配置中心 & 注册中心

第三、安全执行环境(沙盒基础设施): AI 弹性伸缩层

第四、隐性轨迹追踪(调试神经): AI 可观测体系

4.架构师的 Balance 哲学

在理解了“全局架构即 Harness”之后,架构师的最核心能力就在于 “平衡与折中(Balance)”。 我们不仅要会画宏大的全景图,更要懂得针对不同的业务场景(请求量、推理速度、复杂度),在【最小化单元架构】(Agent 逻辑层 + 模型层 + 知识层)与【最完整混合微服务架构】之间,精准裁剪出最适合企业的驾驭层形态。

驾驭层的未来

image.png

1. 模型训练与驾驭层设计的耦合

当前的 AI 编程助手(例如 Claude Code 和 OpenAI 的 Codex),其训练范式已经发生了转变。这与你关注的 AI/ML 实战部署紧密相关,因为模型如何与工具集成直接决定了其在实际环境中的效能。

以前的训练 好比仅通过阅读手册来学习驾驶:模型熟记了所有理论知识,但从未有过实际操作经验。它知道规则,却缺乏运用工具的能力。

现在的训练(后训练) 则像是在配备齐全的真车中学习:模型直接在一个拥有方向盘、刹车和导航系统的真实“驾驭层”环境中进行练习。它需要学习何时转向、如何变道以及怎样使用 GPS 导航,实现了理论与工具实操的同步学习。

这引发了一个关键现象:模型与其所使用的工具在深度交互中共同演进与“磨合”

工具越用越顺手,源于专项训练

想象这样一个强化循环

开发者发现,为模型集成一个“文件阅读器”工具能显著提升效率。于是,他们将此工具纳入驾驭层,并用这套配置去训练模型的新版本。新模型在大量练习中,变得越来越擅长调用这个文件阅读器,能精准判断何时需要读取文件以及如何快速提取关键信息。

随着模型能力提升,开发者可能进一步引入“代码编辑器”等工具,再次更新驾驭层并训练下一代模型。

最终结果是:模型并非掌握了“通用的工具使用能力”,而是成为了“特定工具链的熟练工”。 这就像一位厨师常年使用某款特定的炒菜锅,技法炉火纯青,但换一口新锅可能就需要重新适应。

潜在风险:对“顺手工具”的过度依赖

这种深度磨合可能带来一个副作用:模型被当前的工具实现方式“惯坏”了

一个具体的例子是:Codex-5.3 被训练使用一种特定的 apply_patch(打补丁)方法来修改代码文件。这种方法可能固化了一套固定的操作流程,例如按 A 格式读取旧代码,再按 B 格式生成新代码。

从理想角度看,一个真正智能的“程序员”应具备通用的问题解决能力。无论你提供何种编辑工具——直接覆盖文件、使用 diff 对比或是打补丁——它都应能完成任务。

但现实情况是,如果你稍微改变 apply_patch 工具的内部实现(例如,从“读取+生成”模式改为“直接覆盖”模式),Codex-5.3 的性能可能会出现显著下降。这是因为模型形成了“肌肉记忆”,它学习的不是“如何编辑文件”这一通用技能,而是“如何使用特定格式打补丁”这一具体操作

这就是一种“过拟合”:模型对特定工具的实现细节产生了依赖,从而丧失了应对变化的灵活性。

积极面:通过优化驾驭层来释放潜力

然而,这也揭示了一个重要的工程机会:即使模型是基于某个特定驾驭层训练而成的,你仍然可以通过精心优化驾驭层配置,来显著提升其在实际任务中的表现

Terminal Bench 2.0(一个编程能力基准测试)的结果印证了这一点。以同一个模型 Opus 4.6 为例:

  • 在 Claude Code 自带的默认驾驭层中,它的排名相对靠后。
  • 但当 LangChain 团队针对任务优化了驾驭层配置——调整了工具组合、改进了提示词策略、优化了执行流程——同样的模型便从榜单前 30 名跃升至前 5 名。

这说明了什么? 这好比给同一位程序员更换了一套更顺手的 IDE、提供了更清晰的文档规范、设置了更合理的快捷键,他的工作效率便能获得大幅提升。

因此,切勿认为“官方默认配置”就是最优解。针对你的具体部署场景和任务需求,持续对驾驭层进行调优,往往能挖掘出模型远超预期的潜力,这是 AI/ML 实战部署中一个值得深入探索的方向。

2. 驾驭层工程的发展方向

随着基础模型能力的持续增强,当前由驾驭层承担的某些功能(例如复杂的规划、自我验证等)未来可能会被模型原生吸收。模型将在长程连贯性和逻辑推理方面变得更强,从而减少对外部上下文管理的依赖。

这表明,长远来看,驾驭层的某些组成部分的重要性可能会相对下降。但正如提示工程(prompt engineering) 在今天依然具有重要价值一样,驾驭层工程(harness engineering) 很可能在构建高效、可靠的智能体系统方面持续发挥关键作用。

的确,当前的驾驭层在一定程度上弥补了模型的不足,但它们更核心的价值在于:围绕模型智能,工程化地构建系统,使其发挥最大效能。一个配置得当的环境、一套正确的工具集、持久化的状态管理以及有效的验证循环,能够显著提升任何模型的效率和可靠性,无论其底层智能水平如何。

驾驭层工程目前是一个非常活跃的研究与实践领域。例如,LangChain 社区就在利用其驾驭层构建库 deepagents 来持续探索和改进这一范式。对于专注于实战部署的你而言,关注并参与此类工程实践,是将 AI 能力有效落地的重要一环。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐