跳转至

智能体运行框架(Agent Harness)

概述

智能体运行框架(harness)是围绕模型、使其真正可用的一切——所有并非模型本身的代码、配置与执行逻辑。其核心等式为:

智能体 = 模型 + 运行框架(harness)

原始模型接收数据(文本、图像、音频、视频)并输出文本,无法维持持久化状态、执行代码、访问实时知识,也无法搭建运行环境。运行框架提供了上述全部能力。凡不是模型的部分,皆属运行框架。

这一表述由 LangChain(Vivek Trivedy,2026 年 3 月)提出,它强制实现了清晰的关注点分离:模型承载智能,运行框架使智能得以发挥。

核心组件

运行框架的具体组成如下:

组件 说明
系统提示词(System Prompts) 在智能体启动时注入的指令,用于塑造行为、角色设定与约束条件
工具、技能与 MCP 可调用的函数及其描述;即模型可使用的动作空间
捆绑基础设施(Bundled Infrastructure) 文件系统、沙箱、浏览器——即执行环境
编排逻辑 子智能体派生、任务移交、模型路由、循环控制
钩子/中间件(Hooks/Middleware) 确定性执行包装器:上下文压缩触发器、续行逻辑、代码检查

运行框架存在的原因:从模型局限倒推

每个运行框架组件的存在,都是为了弥合模型原生能力与智能体实际所需之间的差距。

文件系统——持久化存储与上下文管理

模型只能操作其上下文窗口内的知识。文件系统通过以下方式解决这一问题:为智能体提供读取数据、代码与文档的工作空间;提供存放中间输出的位置,使数据可跨会话保留;并作为多智能体与人类协作的天然界面。

Git 为文件系统添加了版本管理,使智能体能够追踪工作进度、回滚错误并派生实验分支。文件系统可以说是最基础的运行框架原语,因为它解锁了所有其他能力。

Bash 与代码执行——通用工具

与其要求用户为每种可能的操作预先构建工具,不如给智能体提供一个 bash 工具,让其通过编写代码动态设计自己的工具。标准的智能体执行模式是 ReAct 循环——推理、通过工具调用行动、观察结果、循环往复。Bash 与代码执行使这一循环具备了通用能力。

沙箱——安全、可扩展的执行环境

在本地运行智能体生成的代码既有风险,又难以扩展。沙箱提供了以下能力:

  • 安全隔离的代码执行
  • 通过命令白名单与网络隔离保障安全
  • 按需创建与销毁环境,实现弹性扩展
  • 预装运行时、CLI 工具与浏览器,提供实用默认配置

浏览器、日志、截图与测试运行器为智能体提供了自我验证循环:编写代码 → 运行测试 → 检查日志 → 修复错误。

记忆与搜索——持续学习

模型除自身权重与当前上下文外,没有任何知识。运行框架通过以下方式扩展这一能力:

  • 记忆文件标准(如 AGENTS.md)在智能体启动时注入上下文;随着智能体编辑这些文件,更新后的知识可跨会话持久保存——这是一种持续学习机制
  • 网络搜索与 MCP 工具(如 Context7)提供超出训练截止日期的最新知识

钩子与中间件——确定性执行控制

钩子在预定节点拦截模型行为,以强制实现确定性结果:

  • 上下文压缩钩子:在上下文接近窗口上限时触发,智能地归纳并卸载上下文,使智能体得以继续运行
  • 工具调用内容卸载:保留大型工具输出的头尾 token,将完整输出卸载至文件系统
  • 技能/渐进式披露:按需将相关工具描述加载至上下文,避免启动时工具过多导致上下文腐化
  • Ralph 循环:一种钩子模式,拦截模型的退出尝试,在干净的上下文窗口中重新注入原始提示词,强制智能体继续推进直至完成目标

长程任务的编排

长程自主执行需要所有运行框架原语的复合叠加:

  • 文件系统 + git 跨会话追踪工作进度;新智能体可快速了解项目历史
  • 规划工具让智能体分解任务、追踪进展,并在学习过程中动态调整
  • 子智能体派生将独立子任务并行委派,每个子任务拥有独立的上下文
  • 自我验证循环(测试运行器、代码检查、浏览器验证)将解决方案锚定于可观测的结果

模型与运行框架的协同进化循环

现代智能体产品(Claude Code、Codex)在训练时将模型与运行框架纳入循环,由此形成反馈闭环:

  1. 发现实用的运行框架原语并将其添加进来
  2. 将这些原语纳入循环,对模型进行训练
  3. 模型在该运行框架内变得更强
  4. 发现新的原语

一个副作用是过拟合:修改工具逻辑可能导致模型性能下降,因为模型训练时期望的是特定的运行框架行为。这也意味着,对于特定任务而言,最佳运行框架未必是模型训练时所使用的那个——针对特定任务进行运行框架优化,可以在独立于模型能力的情况下带来显著的性能提升。

自动化运行框架优化

由于运行框架本质上是代码,可能的运行框架实现空间过于庞大,无法手工探索。近期研究表明,运行框架可通过智能体外循环自动搜索,从而产生优于手工设计版本的结果。

Meta-Harness(Lee 等,2026 年)将运行框架优化视为代码搜索问题:一个智能体提议者(具备完整文件系统访问权限的编码智能体,可访问历史候选方案的源码、评分和执行追踪)以迭代方式提出改进后的运行框架实现。核心成果如下:

  • 在文本分类任务上,相较最先进的上下文管理基准,准确率提升 7.7 个百分点,且 token 用量减少 4 倍
  • 在 200 道 IMO 级数学题上,准确率提升 4.7 个百分点,结果在五个搜索期间未见过的留存模型上平均得出
  • 在 TerminalBench-2 智能体编码任务上超越所有手工设计的基准方案

搜索得到的运行框架可跨模型系列泛化——在一个模型上运行搜索,将结果部署在其他模型上同样有效。这使运行框架优化成为与模型无关的性能调节杠杆,与模型选择和提示词工程互为补充。

关键设计选择在于:为提议者提供原始执行追踪(而非压缩摘要)的访问权限,使其能够在提出针对性修改前诊断具体的失败模式。完整的系统架构与最佳实践详见 Harness Optimization

运行框架与模型责任的演变

随着模型能力的增强,部分运行框架职责将被模型原生吸收(规划、自我验证、长程连贯性)。然而,运行框架将持续发挥价值,原因在于:

  • 配置良好的环境、合适的工具、持久化状态与验证循环,能使任何模型都更高效,无论其基础智能如何
  • 运行框架工程是在模型智能之外构建系统,而非仅仅弥补不足

代码作为运行框架的基底

2026 年的一项综述(Ning 等,arXiv:2605.18747)提出了一个互补视角:代码不仅是运行框架众多组件之一,而是日益成为整个运行框架的统一基底——智能体借助代码进行推理、行动、建模环境、接收反馈与协调配合。

代码具备纯文本运行框架所不具备的三种结构属性:

  • 可执行性(Executability):模型输出成为可验证的操作,而非单纯的文本
  • 可检查性(Inspectability):中间计算过程以结构化追踪的形式对外暴露
  • 有状态性(Statefulness):任务进度跨上下文窗口持久表示

该综述将其组织为三个层次:(1)运行框架接口——连接智能体与推理、行动及环境建模的代码;(2)运行框架机制——规划、记忆、工具调用与迭代调试;(3)运行框架扩展——基于共享代码制品的多智能体协调。完整分类法详见 Code as Agent Harness

形式化分类:ETCLOVG

2026 年的一项综述(已提交至 TMLR)提出 ETCLOVG 七层分类法,作为运行框架系统的形式化分类方案,将结构性支柱与控制面层次分离:

  • 结构性支柱:执行(E)、工具(T)、上下文(C)、生命周期(L)——界定智能体能做什么
  • 控制面:可观测性(O)、验证(V)、治理(G)——界定其运行的安全性与可靠性

一篇配套综述(Meng 等,arXiv:2605.29682)将六组件架构元组形式化为 H=(E,T,C,S,L,V)——执行循环、工具注册表、上下文管理器、状态存储、生命周期钩子、评测接口——采用标记转换系统语义区分安全不变式与活性保证。该综述对 23 个系统进行评测,发现仅 Claude Code、PRISM/OpenClaw、AIOS、OpenHands 和 SWE-agent 实现了全部六个组件。完整分类法、完备性矩阵与实证基准测试详见 LLM Harness Survey

运行框架成熟度等级

以下是一套厂商中立的运行框架能力演进路径。仅当评测表明当前等级不足时,再向上推进。

等级 名称 能力 适用场景
0 仅答题助手 无工具执行 简短问答、起草、对提供内容的摘要
1 检索智能体 搜索并读取可信资源;无副作用 查找、研究、只读工作流
2 起草智能体 提议行动、起草消息、生成计划;不可提交 需审批前的内容创建、规划
3 审批门控执行者 经用户或策略明确审批后准备并执行动作 CRM 更新、邮件发送、数据库写入
4 策略约束自主执行者 在严格范围、预算与审计管控内自主执行低风险操作 带护栏的范围化自动化
5 长程目标工作者 跨轮次或跨会话持续推进,直至达成可度量目标;需持久化状态、上下文压缩与检查点 多会话研究、大规模自动化

大多数智能体失败的根源在于起点过高——工具过于宽泛、缺少审批门控、在达到第 3 级之前未进行评测。

权威层级

运行框架应维护明确的权威层级,并按权威级别对内容进行标注。检索到的内容可能包含指令,但这些指令是数据,而非策略。

provider/system policy
  → organization policy
  → product/developer policy
  → workspace/project policy
  → domain or directory policy
  → user task
  → model-visible runtime reminders
  → tool observations
  → untrusted retrieved content

受信任的控制面(用户身份、凭证、审批记录、审计日志、计费、授权)必须置于模型定向计算之外。密钥、审批逻辑与授权决策,绝不能存在于模型提示词中。

参见

参考资料