精读:Agent Harness for Large Language Model Agents — A Survey

精读系列说明:本文面向零基础大模型学习新手,采用"原文→翻译→讲解"三段式精译核心段落,力求把"Agent Harness"这个重要概念讲透。


一、论文基本信息

项目 内容
标题 Agent Harness for Large Language Model Agents: A Survey
作者 Qianyu Meng, Yanan Wang, Liyi Chen, Wei Wu, Yihang Li, Wenyuan Jiang, Qimeng Wang, Chengqiang Lu, Yan Gao, Yi Wu, Yao Hu
机构 大连理工大学、小红书等
发表 Preprints 2026(预印本,v3版本)
DOI 10.20944/preprints202604.0428.v3
GitHub https://github.com/Gloriaameng/LLM-Agent-Harness-Survey
论文量 综述 110+ 篇论文、博客、报告,覆盖 23 个系统

阅读地图

本文建议按如下顺序阅读:

核心概念 → 形式化定义 → 关键证据 → 系统分类 → 9大挑战 → 串联已学知识
  1. 先读第二节(术语速查)——扫清语言障碍
  2. 再读第三节(什么是 Harness)——建立核心直觉
  3. 再读第五节(六元组拆解)——掌握架构骨架
  4. 再读第六节(震撼证据)——理解为何重要
  5. 最后读第七-九节(分类、挑战、串联)——全景理解

二、零基础术语速查表

遇到不懂的词,先来这里查,再去读正文。

术语 中文 一句话解释
Agent(智能体) 智能体 能感知环境、做决策、执行动作的 AI 程序,比普通聊天机器人"更主动"
Harness 执行外壳 / 约束工程 包裹 LLM 的整套工程脚手架,让模型能真正干活(详见第三节)
LLM 大语言模型 如 GPT-4、Claude 3.5 这类超大规模语言模型
Execution Loop 执行循环 Agent 不断"看→想→做"的循环过程
Tool Registry 工具注册表 Agent 可以使用的所有工具的"目录和使用说明书"
Context Window 上下文窗口 LLM 一次能"看到"的全部文字,有字数限制(如 200k tokens)
Context Manager 上下文管理器 决定"什么内容放进上下文窗口"的管理组件
State Store 状态存储 保存 Agent 工作进度的"存档点",崩溃后可以恢复
Lifecycle Hook 生命周期钩子 在 Agent 执行的关键时刻"插入"安全检查、日志记录等代码的机制
MCP 模型上下文协议 Anthropic 于 2024 年发布的工具↔Agent 标准接口协议,延迟 2-15ms
A2A 智能体间协议 Google 于 2025 年发布的 Agent↔Agent 通信标准,延迟 50-200ms
Sandbox(沙箱) 沙箱隔离 像"鱼缸"一样把 Agent 的危险操作限制在安全边界内
SWE-bench SWE基准测试 让 Agent 修复真实 GitHub Issue 的权威代码能力评测
ReAct 推理行动框架 让 LLM 交替做"思考"和"行动"的经典方法(Yao et al., ICLR 2023)
RAG 检索增强生成 先从知识库搜索相关内容,再让 LLM 生成答案的技术
Token 词元 LLM 处理文本的基本单位,一个英文单词约等于 1-1.5 个 token
Byzantine Fault 拜占庭容错问题 多 Agent 系统中,一个 Agent"撒谎"或出错时,其他 Agent 如何仍能正常工作
假阴性率 评估假阴性率 评估系统把"实际通过"判为"失败"的比例,越高说明评估越不可靠

三、什么是"Agent Harness(智能体执行外壳)"

3.1 最通俗的类比

想象你雇了一位天才厨师(这就是 LLM),但只有厨师是不够的:

这整套"厨房基础设施",就是 Agent Harness(执行外壳)

换一个更精准的类比:

模型 = 引擎Harness = 车身底盘 + 整套传动系统 + 仪表盘 + 安全带 + 制动系统

再好的引擎,如果没有车身底盘,它只是一堆金属零件,无法上路行驶。

这正是本论文的核心论点:

"Agent Harness 是底盘;模型是引擎。"(业界 2026 年共识)

3.2 为什么以前没人重视 Harness?

过去大家发论文都在研究"怎么让 LLM 本身更聪明",比如:
- 更大的模型参数
- 更好的训练数据
- 更强的推理能力

但现实中,很多 Agent 系统失败不是因为模型不够聪明,而是因为:

本论文的贡献,就是第一次把这套"围绕模型的工程外壳"当作正式的学术研究对象来系统研究。

3.3 Harness 的形式化定义

本综述将 Agent Harness 形式化为一个六元组:

$$H = (E, T, C, S, L, V)$$

符号 组件名称 中文
E Execution Loop 执行循环
T Tool Registry 工具注册表
C Context Manager 上下文管理器
S State Store 状态存储
L Lifecycle Hooks 生命周期钩子
V Evaluation Interface 评估接口

四、Abstract 精译

4.1 原文(摘要核心句)

原文

"Dominant narratives attribute agent performance to underlying model capabilities. This survey challenges that assumption. We propose a formal definition of the Agent Harness as the tuple H = (E, T, C, S, L, V), systematically survey 110+ papers covering 23 systems, and document nine open technical challenges. We argue that Agent Harness design — not model capability — is the binding constraint on deployed agent reliability."

4.2 翻译

翻译

"主流观点将智能体的性能归因于底层模型的能力。本综述挑战了这一假设。 我们提出了 Agent Harness 的形式化定义,将其定义为六元组 H = (E, T, C, S, L, V),系统综述了涵盖 23 个系统的 110 余篇论文,并记录了九项开放性技术挑战。我们认为,限制已部署智能体可靠性的约束瓶颈是 Agent Harness 设计,而非模型能力。"

4.3 讲解

这段摘要只有几句话,但每句都很有分量:

  1. "挑战主流假设":这是学术勇气。大部分论文说"我们改进了模型",这篇说"你们都搞错了方向,关键不是模型"。

  2. 形式化定义:把原本模糊的"工程外壳"概念,用数学化的六元组表达,这是这篇论文最大的理论贡献。

  3. "约束瓶颈"(binding constraint):工程中的"约束瓶颈"指系统中最薄弱、限制整体能力的那个环节。论文认为:不是模型太笨,而是 Harness 太差,才导致 Agent 在实际部署中不可靠。


五、核心贡献与核心论点精译

5.1 核心论点

原文

"Agent Harness — not the model itself — is the primary determinant of agent reliability at scale."

翻译

"Agent Harness——而非模型本身——是智能体大规模部署可靠性的首要决定因素。"

讲解

这句话是整篇综述的灵魂。注意两个关键词:
- "首要决定因素"(primary determinant):不是说模型不重要,而是在实际部署中,Harness 的质量比模型本身更能决定成败。
- "大规模部署"(at scale):在实验室做个 demo,也许模型智慧就够了;但要在生产环境中稳定处理成千上万个任务,没有好的 Harness 必然崩溃。

5.2 震撼的经验证据(四个案例逐条讲解)

论文提供了四个来自真实部署的案例,每一个都让人印象深刻:


案例 1:Grok Code Fast 的 SWE-bench 奇迹

"Pi Research:Grok Code Fast 1 模型在 SWE-bench 上从 6.7% → 68.3%,仅通过修改 Agent Harness 的编辑工具格式——模型不变。"

讲解

SWE-bench 是让 AI 修复真实 GitHub bug 的权威测试。6.7% 意味着几乎所有 bug 都修不好,68.3% 意味着超过三分之二的 bug 都能修好。

关键:模型一行代码没改,只是改了"Agent 调用编辑工具时的数据格式",成绩提升了 10 倍。

这就像:同一个厨师,换了一套更顺手的厨具,做菜水平从普通直接飙升到米其林三星——厨师的技术根本没变,是厨房设备(Harness)决定了上限。


案例 2:OpenAI Codex 的 100 万行代码失败

"OpenAI Codex:5 个月内生成 100 万行代码,0 行手写——失败归因于'环境规范不足'而非模型能力。"

讲解

Codex 作为代码生成模型,能力极强。但在一个实际项目里,Codex 生成了 100 万行代码,结果项目失败了。失败原因不是模型写出的代码质量差,而是"执行环境设计得太差了"——没有好的 Harness 来:
- 管理代码的上下文和依赖关系
- 检查每次代码修改的影响范围
- 保存阶段性工作进度

这说明:光有聪明的模型,没有支撑它运行的基础设施,照样失败。


案例 3:Stripe Minions 的每周 1300 个 PR

"Stripe Minions:每周 1300 个 PR,0 行人工代码——Agent Harness 优先策略的成功案例。"

讲解

这是正面案例。Stripe(著名支付公司)的工程团队构建了一套以 Harness 为核心的 Agent 系统,每周自动提交 1300 个代码改动,全程无需人工编写代码。

这不是模型有多厉害的故事,而是"把执行外壳做对了"的成功。Stripe 明确表示他们的策略是"Agent Harness 优先"。


案例 4:METR 发现的评估危机

"METR:通过基准测试的 PR 人工合并率低 24.2 个百分点,差距以 9.6pp/年速度扩大。"

讲解

这是最让人警醒的数据。METR(AI 安全评估机构)发现:

这说明:我们评估 Agent 好不好的工具本身就有问题。这对应的正是 Harness 的 V 组件(评估接口)的挑战——我们的评估基础设施还不够成熟。


六、H=(E,T,C,S,L,V) 六元组逐个拆解

这是本综述最核心的理论贡献,我们逐一拆解每个组件。


6.1 E——执行循环(Execution Loop)

原文定义

"Observation-Think-Act loop, termination conditions, error recovery."

翻译

"观察-思考-行动循环,终止条件,错误恢复机制。"

新手讲解

执行循环是 Agent 的"心跳"。

想象一个 Agent 在帮你修 bug:

第1轮:
  观察 → "当前代码报错 NullPointerException"
  思考 → "可能是第42行没判断空值"
  行动 → "修改第42行,添加空值检查"

第2轮:
  观察 → "修改后新报错:TypeError"
  思考 → "空值检查改对了,但类型不匹配"
  行动 → "继续修改..."

...(直到测试全通过,或达到最大轮次)

这个循环就是 E 组件。它需要解决三个关键问题:

  1. 循环什么时候停?(终止条件)
    - 任务完成?最大轮次?出现某种错误?
    - 没有好的终止条件,Agent 可能无限循环

  2. 出错了怎么办?(错误恢复)
    - 工具调用失败?网络超时?
    - 好的 Harness 会自动重试、切换策略

  3. 循环的节奏和深度?
    - 每轮思考要多深?什么时候该并行执行?

对应已学论文:ReAct(Yao et al., ICLR 2023)就是专门研究"如何设计 观察-思考-行动 循环"的经典论文,是 E 组件的理论基础之一。


6.2 T——工具注册表(Tool Registry)

原文定义

"Typed tool catalog, routing, monitoring, schema validation."

翻译

"类型化工具目录,请求路由,调用监控,模式校验。"

新手讲解

工具注册表是 Agent 的"能力菜单"。

Agent 能做什么,取决于它有什么工具。常见工具包括:
- 执行代码(run_python)
- 读写文件(read_file, write_file)
- 搜索网络(web_search)
- 调用外部 API(call_api)

T 组件要管理这些工具:

  1. 类型化目录:每个工具要有清晰的"输入什么、输出什么"说明(schema),就像乐高积木的规格说明书,不合规格不能拼

  2. 路由:Agent 说"我要搜索"时,系统自动选择合适的搜索工具(本地缓存?Bing?Google?)

  3. 监控:记录哪个工具被调用了几次、耗时多少、出错率多高

  4. Schema 校验:工具调用参数格式不对,在执行前就拒绝,避免事后才发现错误

关键证据:Vercel 工程团队发现,把工具数量削减 80%,比换更强的模型效果还好。工具太多,Agent 反而搞不清楚该用哪个(就像菜单太长反而不知道点什么)。


6.3 C——上下文管理器(Context Manager)

原文定义

"What enters the context window, compression, retrieval."

翻译

"决定什么内容进入上下文窗口,内容压缩,按需检索。"

新手讲解

上下文管理器是 Agent 的"工作记忆调度员"。

LLM 有一个严重限制:它的"上下文窗口"是有限的,就像一块白板,写满了就要擦掉旧的才能写新的。

假设你的白板只能写 2000 个字,但你要处理的任务涉及 10000 个字的材料,C 组件要决定:

这三个问题决定了 Agent 能不能"记住"任务的关键信息。

对应已学论文
- Lost in the Middle(Liu et al., 2024):研究了 LLM 对上下文不同位置信息的利用差异——中间的信息容易被"遗忘",即使信息还在上下文里。这说明"把什么内容放进上下文"的位置也很关键。
- RAG(检索增强生成):从外部知识库检索相关内容放入上下文,是 C 组件"检索"功能的核心技术。
- MemGPT(Packer et al.):专门解决"如何管理超长上下文",把操作系统的内存管理理念(虚拟内存、分页)引入 LLM,是 C 组件的典型实现。


6.4 S——状态存储(State Store)

原文定义

"Cross-turn/session persistence, crash recovery."

翻译

"跨轮次/跨会话的状态持久化,崩溃恢复。"

新手讲解

状态存储是 Agent 的"游戏存档系统"。

玩游戏时,如果没有存档功能,每次死亡都要从头开始。Agent 也一样:

对于长时间运行的任务(比如"帮我重构整个代码库"),S 组件至关重要。没有 S 组件的 Agent,一次意外就让所有工作白费。

对应已学论文
- MemGPT 的 S 组件设计:除了管理上下文(C),MemGPT 也实现了层次化的记忆存储,包括工作记忆(当前任务)→外部存储(长期知识)。
- Voyager(Wang et al., 2023):在 Minecraft 游戏中,Voyager 把获得的"技能代码"存储起来,下次遇到类似任务可以直接调用——这就是 S 组件的技能持久化。


6.5 L——生命周期钩子(Lifecycle Hooks)

原文定义

"Authentication, logging, policy enforcement, instrumentation."

翻译

"鉴权认证,日志记录,策略执行,监测埋点。"

新手讲解

生命周期钩子是 Agent 的"规章制度执行者"。

想象餐厅的食品安全检查员:厨师(模型)每做一道菜前后,检查员都要确认食材新鲜(鉴权)、记录食谱(日志)、确保符合卫生规范(策略执行)、监测厨房温度(埋点监控)。

L 组件在 Agent 执行的关键时刻"插入"检查:

Agent 准备调用工具 "delete_file"
  ↓
[L 钩子触发] → 检查:这个操作被允许吗?→ 不允许 → 拒绝并记录日志
  ↓
Agent 收到拒绝,换一种方式处理

L 组件的关键特性:Agent 本身不需要知道这些检查的存在,检查逻辑在外部注入。

为什么重要
- 缺少 L 组件,Agent 可能删除重要文件、泄露敏感数据、无限消耗资源
- SandboxEscapeBench 发现:前沿 LLM 有 15-35% 的概率会逃逸容器沙箱
- PRISM 系统用 10 个钩子实现了零分叉运行时,把逃逸率降至接近零,且额外开销不到 5ms


6.6 V——评估接口(Evaluation Interface)

原文定义

"Action traces, intermediate states, success signals."

翻译

"动作轨迹记录,中间状态快照,成功信号定义。"

新手讲解

评估接口是 Agent 的"飞行数据记录仪"。

飞机的黑匣子记录每一秒的飞行数据,出了事故能追查原因。V 组件为 Agent 提供同样的能力:

  1. 动作轨迹:Agent 每一步做了什么,完整记录("第3步调用了 write_file,参数是...,返回了...")

  2. 中间状态:每轮循环结束时,当前任务完成了多少、还剩什么

  3. 成功信号:明确定义什么算"完成"——不能只是"Agent 说完成了",要有客观可验证的标准

为什么很多系统缺少 V:V 组件不影响 Agent 功能,只影响可观测性和可调试性。但没有 V,出了问题完全不知道哪里错了。

关键问题:OSWorld 发现自动评估有 28% 的假阴性率,即 28% 实际完成的任务被判为"未完成"。评估工具本身不准确,严重影响我们判断 Agent 到底有多好。


七、历史时间线:从测试框架到 Agent Harness

了解 Harness 概念是如何演化来的,帮助理解为什么今天我们需要系统研究它。

年份 里程碑 对 Harness 的意义
1997-2005 JUnit, TestNG, xUnit 测试框架 "Harness" 概念起源:软件测试需要一套标准化的"观察-断言"基础设施
2016 OpenAI Gym(强化学习环境) 首个 RL Harness 范式:step/reset API 成为标准接口,智能体与环境分离
2022年11月 ChatGPT 发布;LangChain 出现 LLM Agent 框架萌芽,工具使用成为核心能力
2023 ReAct, MemGPT, Reflexion, Voyager E/C/S 组件的核心学术方案相继提出
2023 CAMEL, MetaGPT, Generative Agents 多智能体 Harness 架构涌现
2023 AgentBench, SWE-bench V 组件(评估基础设施)正式出现
2024 OpenHands, SWE-agent, OSWorld 全栈执行器开始构建完整 ETCSLV
2024年11月 Anthropic 发布 MCP 协议 T 组件首个主流标准化协议(2-15ms 延迟)
2025 HAL, AIOS, LangGraph 评估统一(21,730 次评估);OS 级调度(2.1× 加速)
2025 Google 发布 A2A 协议 多智能体通信标准(50-200ms)
2026年Q1 本论文发布,SandboxEscapeBench, PRISM L/V 组件安全研究爆发;Harness 正式成为一级学术对象

关键洞察:从上表可以看到,每隔几年就有一个核心组件被学术界"发现"并深入研究,但直到 2026 年,才有人把 E/T/C/S/L/V 六个组件放在一起,作为一个统一框架来系统研究。


八、系统分类全景:5大类 23 个系统

论文根据"Harness 完备性"(实现了六个组件中的哪些)对 23 个系统进行分类。

分类依据的重要性:以前大家按"应用领域"(编程/浏览器/游戏)分类,没法解释"为什么同样用 GPT-4,A 系统比 B 系统可靠得多"。按 Harness 完备性分类,直接揭示了可靠性差异的根源。

8.1 Harness 完备性矩阵(核心图表)

图例:✓ 完全支持 · ≈ 部分支持 · ✗ 缺失

类别 系统 E T C S L V
全栈式 Agent Harness Claude Code
OpenClaw / PRISM
AIOS
OpenHands
SWE-agent
多智能体执行器 MetaGPT
AutoGen
ChatDev
CAMEL
DeerFlow
通用框架 LangChain
LangGraph
LlamaIndex
能力模块 MemGPT
Voyager
Reflexion
Generative Agents
评估基础设施 HAL
AgentBench
OSWorld
BrowserGym

8.2 五大类系统点评

第一类:全栈式 Agent Harness

这类系统实现了全部或接近全部的 ETCSLV 组件,可以直接用于生产环境。

第二类:多智能体执行器

让多个 Agent 分工合作,擅长复杂协作任务,但单个 Agent 的 Harness 完备性不如全栈系统。

第三类:通用框架

提供构建 Agent 的基础组件,开发者自己拼装,而非开箱即用的完整系统。

第四类:能力模块

只实现了六个组件中的 2-3 个,专注于解决某个特定问题,而非提供完整 Harness。

第五类:评估基础设施

这些系统的目标是评估其他 Agent,而非让 Agent 完成任务,因此 V 组件很强,L 组件普遍缺失。

核心发现

"没有任何智能体框架能够在不实现全部六个治理组件的情况下达到生产可靠性。缺少 L 组件的系统无法执行安全策略。缺少 V 组件的系统无法调试故障。缺少 S 组件的系统无法从崩溃中恢复。"


九、9大开放挑战逐条精译与讲解

这九大挑战是当前学术界和工业界都没有完全解决的难题,代表了 Agent Harness 工程的前沿战场。


挑战 1:安全与沙箱(Security & Sandboxing)

是什么问题

Agent 需要真正操作文件系统、执行命令、调用网络 API——这些都是危险操作。传统的应用程序沙箱(如手机 App 权限管理)是针对"不会主动学坏的代码"设计的,但 Agent 是有智能的,它可能主动"找到"沙箱的漏洞。

为什么难

现状与数据


挑战 2:评估与基准测试(Evaluation & Benchmarking)

是什么问题

我们如何知道一个 Agent 到底有多好?基准测试(benchmark)是标准答案,但这些测试本身有根本性缺陷。

为什么难

现状

差距以 9.6 个百分点/年 的速度扩大——基准分数提升的速度,比真实部署价值提升的速度快得多。这是 2026 年 Agent 领域最严峻的危机之一。


挑战 3:协议标准化(Protocol Standardization)

是什么问题

目前 Agent、工具、其他 Agent 之间用什么"语言"通信,没有统一标准。就像早期互联网每家公司用自己的网络协议,Agent 生态碎片化严重。

为什么难

不同层次的通信需要不同的协议设计权衡:
- 工具调用:要快(毫秒级),要类型安全
- Agent 间通信:需要携带上下文、意图、权限信息,结构更复杂

现状

目前有三个协议并存:

协议 发布方 定位 延迟
MCP(Model Context Protocol) Anthropic(2024年11月) 工具↔Agent 通信标准 2-15ms
A2A(Agent-to-Agent) Google(2025年) Agent↔Agent 通信标准 50-200ms
ACP(Agent Communication Protocol) IBM 意图级通信 未公开

这三个协议并不互斥,服务于互补的场景,但尚未形成统一生态。大量 Agent 框架仍使用自定义格式,系统之间无法直接互操作。


挑战 4:运行时上下文管理(Runtime Context Management)

是什么问题

随着任务越来越复杂,Agent 需要处理的信息量爆炸性增长,但上下文窗口是有限的(即使是 100 万 token 的长上下文模型)。

为什么难

现状与数据


挑战 5:工具使用与注册(Tool Use & Registration)

是什么问题

Agent 需要学会"什么时候用什么工具,怎么用对"。工具太多、描述不清、接口不统一,导致 Agent 频繁出错。

为什么难

现状与数据


挑战 6:记忆架构(Memory Architecture)

是什么问题

Agent 需要"记住"各种不同性质的信息:当前任务的细节(短期)、跨任务积累的经验(长期)、与用户的历史对话(情节式)、学到的技能(程序式)……不同类型的信息需要不同的存储和检索策略。

六种记忆架构模式(从简单到复杂):

模式 描述 代表系统
平面缓冲区 简单的文本列表,先进先出 早期 ChatBot
层次化 短期/长期分层,重要性排序 MemGPT
情节式 按时间和事件组织记忆 Generative Agents
语义式 向量嵌入,按语义相似度检索 RAG 系统
过程式 存储可执行的技能/代码 Voyager
图式 知识图谱,存储实体关系 MemoryOS, A-MEM

关键数据

为什么难


挑战 7:规划与推理(Planning & Reasoning)

是什么问题

对于需要多步骤、长时间推理的复杂任务,Agent 的规划能力严重不足。Agent 常常"走一步看一步",缺乏前瞻性,导致无效行动和循环往复。

为什么难

现状


挑战 8:多智能体协调(Multi-Agent Coordination)

是什么问题

当多个 Agent 协作完成一个复杂任务时,如何确保它们之间的协调是可靠的?一个 Agent 出错,会不会拖垮整个系统?

为什么难

现状


挑战 9:算力经济学(Computational Economics)

是什么问题

Agent 执行任务需要大量计算资源,成本极高,可持续性存疑。

为什么难

数据

为什么 Harness 在这里很重要

好的 Harness 设计可以大幅降低算力成本:
- 上下文压缩(C 组件):减少 90% token 消耗
- 工具缓存(T 组件):避免重复调用相同工具
- 状态检查点(S 组件):崩溃恢复而非从头重来
- 精准评估(V 组件):早发现失败,不浪费计算


十、串联已学知识:Harness 视角下的经典论文地图

帮助新手把"Agent Harness"和此前已经精读过的论文连成知识网络。

以下是本系列已覆盖的经典论文,在 Harness 框架下各自对应哪个组件:

10.1 E 组件(执行循环)——ReAct

ReAct: Synergizing Reasoning and Acting in Language Models(Yao et al., ICLR 2023)

ReAct 是 E 组件的理论基础。它解决了执行循环中最核心的问题:Agent 应该如何交替"思考"(Reasoning)和"行动"(Acting)?

ReAct 的核心设计:

想法:我需要搜索"苹果公司总部在哪里"
行动:搜索("苹果公司总部")
观察:结果显示"库比蒂诺,加利福尼亚州"
想法:已经找到答案了
行动:输出答案

这个"想法-行动-观察"三元组,构成了今天几乎所有 Agent 执行循环的模板。

Harness 连接:ReAct 只定义了"循环的内部逻辑",但没有解决循环的终止条件、错误恢复、并发控制——这些都是 Harness 的 E 组件需要补充的工程部分。

10.2 C 组件(上下文)——Lost in the Middle + RAG

Lost in the Middle: How Language Models Use Long Contexts(Liu et al., TACL 2024)

这篇论文发现了上下文利用的"位置偏差":放在上下文中间的信息,LLM 容易忽视。即使 Agent 把所有相关信息都放进了上下文,如果放错了位置,效果也会差。

Harness 连接:这直接影响 C 组件(上下文管理器)的设计——不仅要决定"放什么",还要决定"放哪里"。重要信息要放在开头或结尾,而非中间。

RAG(检索增强生成)

RAG 是 C 组件"按需检索"功能的核心技术:
- 把知识库向量化存储
- 根据当前任务,检索最相关的片段
- 把检索结果注入上下文

Harness 连接:C 组件需要决定何时触发 RAG 检索、检索多少内容、如何将检索结果与当前上下文融合。

10.3 S 组件(状态存储)——MemGPT

MemGPT: Towards LLMs as Operating Systems(Packer et al., NeurIPS 2023)

MemGPT 把操作系统的内存管理理念引入 LLM:
- 工作记忆(上下文窗口)= RAM
- 外部存储(向量数据库、文件)= 硬盘
- 分页机制:自动把"不常用但重要"的记忆"换出"到外部存储,需要时"换入"

Harness 连接:MemGPT 专注于 C + S 两个组件的深度实现,是理解这两个组件的最佳参考论文。但注意:MemGPT 本身不是完整 Harness(缺少 E/T/L/V),它是"能力模块"类别。

10.4 E+S 组件——Voyager(开放式技能积累)

Voyager: An Open-Ended Embodied Agent with Large Language Models(Wang et al., 2023)

Voyager 在 Minecraft 里不断探索、学习新技能、并把技能代码存储起来供后续使用。

Harness 连接
- E 组件:每次探索的执行循环(看到新资源→想想能做什么→尝试行动)
- S 组件:把成功的技能代码存入"技能库"(程序式记忆)
- T 组件:技能库本身就是一个"工具注册表"——积累的技能就是新工具

Voyager 展示了一个令人兴奋的可能性:Agent 可以通过执行来拓展自己的工具库。

10.5 S 组件——Reflexion(从失败中学习)

Reflexion: Language Agents with Verbal Reinforcement Learning(Shinn et al., NeurIPS 2023)

Reflexion 让 Agent 在任务失败后,用自然语言写下"反思日记",存储为长期记忆,下次遇到类似情况时先读一遍,避免同类错误。

Harness 连接:这是 S 组件的一种有趣实现——把"失败经验"作为状态持久化下来。与 Voyager 的"成功技能存储"互补,两者共同说明了 S 组件对 Agent 长期学习的重要性。

10.6 C+S 组件——Generative Agents(社会仿真中的记忆)

Generative Agents: Interactive Simulacra of Human Behavior(Park et al., UIST 2023)

25 个有个性的虚拟人,每人都有记忆流(Memory Stream)、反思能力、规划能力。记忆流记录每次经历,通过"重要性+最近性+相关性"三维打分来决定哪些记忆被检索出来使用。

Harness 连接:Generative Agents 的记忆流是情节式记忆(按时间记录事件)的典型实现,属于 S 组件的高级形态,同时也深度影响 C 组件(上下文中放什么记忆)。

10.7 知识网络全图

ReAct ──────────────────────→ E(执行循环的思考-行动模式)
Lost in the Middle ──────────→ C(上下文利用的位置偏差)
RAG ─────────────────────────→ C(按需检索注入上下文)
MemGPT ──────────────────────→ C + S(上下文管理 + 长期记忆)
Voyager ─────────────────────→ E + S + T(探索执行 + 技能存储 + 技能即工具)
Reflexion ───────────────────→ S(失败经验持久化)
Generative Agents ───────────→ S + C(情节记忆流 + 记忆检索)
                                         ↓
                            Agent Harness H=(E,T,C,S,L,V)
                            把这些零散研究统一在同一框架下

重要启示:这些经典论文都在研究 Harness 的某个组件,但各自"解决一个局部问题"。Agent Harness 综述的贡献,正是把这些碎片化研究统一在一个框架下,揭示了为什么"零件都有了,但整体仍然不可靠"的根本原因——组件的组合涌现出新的故障模式,需要整体化的 Harness 设计视角。


十一、写作风格与图表亮点

11.1 写作风格特点

本综述有几个鲜明的写作特点:

  1. 学术与工业并重:既引用同行评审论文,也引用 Stripe、OpenAI、Cursor、METR 的工程博客和报告。这是大多数学术综述不会做的,但恰恰捕捉了 2025-2026 年 Agent 工程爆发的时代精神。

  2. 挑战假设:开篇即"挑战主流叙事",这在综述论文中比较少见,通常综述是总结现状而非提出争议性观点。

  3. 数据驱动:每个论点都有具体的数字支撑(6.7% → 68.3%,28% 假阴性率,24.2 个百分点差距),不空谈原则。

  4. 明确识别空白:清楚指出哪些挑战"当前仅有部分解决方案,缺乏生产级基础设施",而不是过度美化现有工作。

11.2 图表亮点

Harness 完备性矩阵(最核心的图表)

这张 23×6 的表格是本论文最重要的方法论贡献。它使得原本无法直接对比的异构系统(游戏 Agent vs. 代码 Agent vs. 多 Agent 框架)可以在同一维度上比较:

历史时间线图

从 JUnit(1999)到 2026 年,跨越 27 年,展示了 Harness 概念从"测试脚手架"到"智能体核心架构"的演化路径。帮助读者理解这个概念的深厚技术渊源,而不是突然从天而降的新词。


十二、新手阅读建议与对 Agent 工程师的价值

12.1 新手阅读建议

如果你是 AI 学习新手,建议路径:

  1. 先读本精读:建立整体框架,特别是六元组概念
  2. 再读 ReAct 原论文:理解执行循环的思想来源
  3. 再读 MemGPT 原论文:理解上下文管理和状态存储的深度设计
  4. 跟踪 SWE-bench 排行榜:实时感受 Harness 设计对 Agent 能力的影响
  5. 尝试使用 OpenHands 或 Claude Code:亲身体验一个完整的 Agent Harness 是什么感觉

关于这篇论文的局限性(应知道的诚实评价)

12.2 对"想做 Agent 工程"的人的实用价值

这篇综述对工程实践者的价值,体现在五个维度:

1. 选型决策

用 Harness 完备性矩阵来选择框架:
- 需要生产可靠性?→ 选全栈式(Claude Code, OpenHands)
- 需要快速原型?→ LangChain/LangGraph 够用,但别指望它处理生产事故
- 需要评估基础设施?→ HAL 或 BrowserGym

2. 故障诊断

Agent 出问题时,按六元组排查:
- 无限循环 → E 组件(终止条件设计有问题)
- 工具调用失败后崩溃 → E 组件(缺少错误恢复)
- 上下文窗口溢出 → C 组件
- 程序崩溃无法续上 → S 组件
- 执行了危险操作 → L 组件
- 不知道 Agent 哪里出了问题 → V 组件

3. 工具数量控制

Vercel 案例的教训:不要把所有可能用到的工具都给 Agent。从最少的工具集开始,按需增加。每增加一个工具,要测试它是否真的提升了任务成功率。

4. 评估方法

不要只看基准分数。METR 的案例说明:
- 建立自己领域的评估数据集
- 人工抽样验证,不要完全依赖自动评估
- 跟踪评估的假阴性率和假阳性率

5. 安全优先

在设计 Harness 时,L 组件(生命周期钩子)要最先设计:
- 明确 Agent 不能做什么(白名单 or 黑名单)
- 每次高风险操作前要有审查钩子
- 沙箱隔离是必须的,不是可选的(记住:15-35% 的容器逃逸率)


十三、总结:这篇综述为什么重要

本综述在 Agent 研究史上的意义,可以用一句话概括:

它第一次把工程界早已知道但学术界系统忽视的东西——"执行外壳比模型更重要"——用严格的框架和大量实证证据,升格为一级学术研究命题。

就像 1999 年 Martin Fowler 写《重构》,把程序员凭直觉做的"代码整理"提炼为系统的工程学一样;这篇综述把 Agent 工程师凭直觉搭建的"周边基础设施",提炼为有名称、有边界、可测量的六元组架构,让整个领域可以在同一语言体系下讨论、比较和改进。

对于正在学习 LLM 和 Agent 技术的你:


本精读文档依据官方中文 README(v3,2026年4月)撰写,数字与事实以官方文档为准。

撰写时间:2026年5月