Agent Harness 02:论文谱系、阅读路线与单篇精读索引

这组论文在研究什么

Agent Harness 不是单篇论文定义出的封闭方向。它由四条研究线汇合而成:

flowchart LR
    A[控制策略<br>ReAct / Reflexion] --> E[Agent Harness]
    B[动作与接口<br>CodeAct / SWE-agent] --> E
    C[系统运行时<br>DSPy / OpenHands] --> E
    D[环境与评测<br>AgentBench / SWE-bench / OSWorld / tau-bench / AgentDojo] --> E

本文的主干选择 2023–2025 年已被 ICLR、ICML、NeurIPS、TMLR 正式接收、且对 harness 设计有直接影响的工作;文末另列一篇 2026 年预印本,用于观察“harness 本身成为实验自变量”的最新趋势。论文里的结果用于理解因果与失败模式,不用于维护实时排行榜。

总表

年份工作会议它改变了什么
2023ReActICLR把推理、动作和观察组织为通用闭环
2023ReflexionNeurIPS把外部反馈转成跨 episode 的语言记忆
2024DSPyICLR把 prompt pipeline 变成可声明、可优化的程序
2024AgentBenchICLR用八类交互环境评测 Agent,而非只评最终文本
2024SWE-benchICLR用真实仓库 issue 与测试执行评估软件工程 Agent
2024CodeActICML用可执行 Python 统一和组合动作空间
2024SWE-agentNeurIPS证明 Agent-Computer Interface 是核心自变量
2024OSWorldNeurIPS D&B把跨应用真实操作系统做成可初始化、可执行验收的环境
2024AgentDojoNeurIPS D&B将任务效用与 prompt injection 安全联合评测
2025OpenHandsICLR给出带沙箱、事件流和基准接入的通用软件 Agent 平台
2025τ-benchICLR用数据库终态和 pass^k 衡量政策遵循与重复可靠性
2025BrowserGymTMLR统一浏览器观察、动作、任务与批量实验接口
2026Beyond the ModelarXiv 预印本直接拆解工具、压缩、规划、子 Agent 与技能的独立作用

单篇长文索引

下列页面不是摘要卡片,而是可以单独阅读的论文解析。每篇都按“研究问题、方法结构、实验协议、关键证据、失败模式、Harness 映射、复现路线”展开。

序号独立精读最适合回答的问题
01ReAct:把推理、动作与观察编排成闭环最小 Agent 循环为什么有效,哪里会卡死?
02Reflexion:语言反馈如何成为跨回合记忆不更新权重时,失败经验怎样进入下一次尝试?
03DSPy:把 LM 流程变成可编译程序怎样从手写 prompt 迁移到可优化模块?
04AgentBench:从答案评测走向环境交互评测多环境 Agent 能力应该怎样统一测量?
05SWE-bench:用真实仓库与测试验证软件 Agent为什么最终补丁必须用环境状态验收?
06CodeAct:以可执行代码统一动作空间代码动作何时优于 JSON 工具,风险代价是什么?
07SWE-agent:Agent-Computer Interface 就是能力边界工具、反馈窗口和编辑接口能改变多少结果?
08OSWorld:在真实操作系统中评测多模态 Agent怎样初始化、隔离并验收真实桌面任务?
09AgentDojo:联合评测任务效用与提示注入安全不可信工具输出如何劫持高权限 Agent?
10OpenHands:从研究原型到通用 Agent 运行时事件流、沙箱、动作与多 Agent 如何组成平台?
11τ-bench:终态判分与重复可靠性单次成功为什么掩盖政策遵循的不稳定?
12BrowserGym:浏览器 Agent 的统一实验底座如何让网页 Agent 的实验可比较、可复现?
13Beyond the Model:把 Harness 组件变成实验变量工具、压缩、规划、子 Agent、技能分别贡献什么?

推荐顺序不是按发表时间机械排列。第一次读先走 ReAct -> SWE-bench -> SWE-agent -> AgentDojo -> OpenHands -> τ-bench;要做浏览器或桌面自动化,再读 BrowserGym 与 OSWorld;要研究 harness 优化,再读 DSPy 与 2026 预印本。

谱系一:控制循环

ReAct:闭环的最小原型

论文:ReAct: Synergizing Reasoning and Acting in Language Models,ICLR 2023;项目与代码。

问题。 只做 Chain-of-Thought 会在封闭上下文里传播幻觉;只预测动作又缺少可解释的工作记忆和动态计划。

方法。 在同一条轨迹中交替生成 reasoning trace、环境 action 与 observation。推理维护计划,动作从外界获取信息并改变状态,观察再修正下一步。

关键证据。 论文在 HotpotQA、FEVER、ALFWorld 与 WebShop 上实验;在两个交互决策任务中,相对论文所选 imitation/RL 基线报告了 ALFWorld 34 个百分点、WebShop 10 个百分点的绝对成功率提升,并只使用一到两个 in-context 轨迹示例。

不能推出什么。 ReAct 没有证明自然语言 thought 是可信解释,也没有提供权限、事务或恢复机制。把 thought 落盘有助调试,但不能拿它作为安全判定依据。

Harness 含义。 最小运行时循环应该是一等对象:

render_context -> model -> decode_action -> policy -> execute -> observe -> reduce_state

每个箭头都应该可替换、可记录、可单测,而不是塞在一个大 prompt 和 while True 里。

Reflexion:反馈要进入下一次尝试

论文:Reflexion: Language Agents with Verbal Reinforcement Learning,NeurIPS 2023;代码。

问题。 环境已经给出失败信号,但不更新权重的 Agent 怎样在后续尝试中利用它?

方法。 actor 产生轨迹,evaluator 给出标量或语言反馈,self-reflection 模块把失败总结为文字并写入 episodic memory,下一 episode 再读回。这里的“强化”发生在上下文和记忆,不是梯度更新。

关键证据。 论文覆盖顺序决策、代码与语言推理,并报告 HumanEval 91% 的结果,高于其论文中的 GPT-4 基线 80%。这组数字依赖论文当时的模型、反馈与多次尝试设置,不应横向当作当前模型排行榜。

边界。 反思只有在反馈含有新信息时才可靠。ICLR 2024 的 Large Language Models Cannot Self-Correct Reasoning Yet 表明:缺少外部反馈时,让模型凭空自我纠错可能不改善、甚至降低推理表现。

Harness 含义。 将 evaluator feedback 与 model self-critique 分开存储;记忆项要记录来源、任务、结果和有效期。失败摘要不能覆盖真实轨迹。

谱系二:动作空间与接口

CodeAct:用代码统一动作,但扩大了风险面

论文:Executable Code Actions Elicit Better LLM Agents,ICML 2024;代码。

问题。 一组离散 JSON 工具难以表达变量、循环、条件和多个 API 的组合;为每种组合再加工具会让动作空间爆炸。

方法。 让模型产生可执行 Python,把库、函数和中间值统一在代码动作空间中;解释器返回运行结果,模型多轮修改。论文还发布了约 7k 多轮交互组成的 CodeActInstruct。

关键证据。 对 17 个模型在 API-Bank 和新构造基准上的实验中,CodeAct 相对论文比较的常用动作表示最高带来约 20% 成功率提升。

代价。 可组合性与最小权限天然冲突。代码解释器可通过反射、文件、进程或网络绕过“工具白名单”,除非能力在沙箱层被真正移除。

Harness 含义。 当任务是分析、研究或代码操作时,CodeAct 很有价值;但执行器必须把容器、文件系统、网络、凭据、CPU/内存/时间限额作为安全边界。AST 黑名单只能辅助,不能替代隔离。

SWE-agent:接口设计本身就是算法

论文:SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering,NeurIPS 2024;官方仓库。

问题。 为人设计的 shell、编辑器和长日志,是否也是模型最容易使用的接口?

方法。 提出 Agent-Computer Interface(ACI),为仓库导航、文件查看和行级编辑设计 LM-friendly 命令与反馈,并分析接口设计怎样改变行为。

关键证据。 原论文在 SWE-bench 上报告 12.5% pass@1,在 HumanEvalFix 上报告 87.7%,当时超过其非交互式基线。论文价值不在今天的绝对名次,而在把 ACI 作为实验变量并做消融。

边界。 结果来自软件工程任务和当时模型;不能直接推广到浏览器、桌面或客服工具。仓库当前也明确建议新用户关注更简单的 mini-SWE-agent,说明研究实现和持续工程实现会演化。

Harness 含义。 工具设计要做模型可用性测试:名称是否易区分、参数是否局部、错误是否短且可修、观察是否稳定、输出是否迫使模型重读大量内容。把这些接口纳入版本和回归测试。

谱系三:程序与完整运行时

DSPy:把“手调 prompt”提升为可优化程序

论文:DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines,ICLR 2024;代码。

问题。 当 LM 系统由检索、分类、生成、工具调用等模块组成时,硬编码 prompt 模板难以随模型和数据系统优化。

方法。 用 signature 与 module 声明文本变换图,再由 compiler 根据训练样例和 metric 选择 demonstrations 或优化模块参数。论文案例覆盖数学题、多跳检索、复杂问答和 Agent loop。

关键证据。 论文报告编译后的简洁 DSPy 程序可超过 out-of-the-box few-shot 与人工示例,并使较小模型在部分任务上达到依赖更大闭源模型方法的竞争水平。

边界。 优化器只会逼近给定 metric;指标若漏掉安全、成本或副作用,编译出的程序也会利用这种遗漏。它解决“怎样优化 LM pipeline”,不自动解决沙箱、权限和事务。

Harness 含义。 prompt、few-shot 和模块拓扑应当版本化并可在固定 evaluator 上优化;控制面的安全策略不应被 prompt optimizer 改写。

OpenHands:通用运行时的系统化切片

论文:OpenHands: An Open Platform for AI Software Developers as Generalist Agents,ICLR 2025;代码。

问题。 单个 Agent demo 难以复用执行环境、事件流、多 Agent、浏览器、沙箱和评测接入,导致研究结果难比较。

方法。 平台化这些公共层,让 Agent 通过代码、终端和浏览器与环境交互;论文描述了 Agent 实现、沙箱执行、多 Agent 协调和基准集成,并在 15 类挑战任务上评估。

贡献。 它把“完整 harness 要有什么”变成可读源码:Agent、runtime、sandbox、event、controller、observation、benchmark adapter 不再是论文伪代码里的一个框。

边界。 平台功能多不等于某个 Agent 策略最优。论文和仓库迭代速度很快,复现实验必须固定 commit、配置、镜像、模型版本与数据集版本。

Harness 含义。 研究新规划算法时复用环境与评测;研究运行时时再修改公共层。不要同时改模型、prompt、工具、镜像和判分器后只报告一个总分。

谱系四:环境、评测与安全

AgentBench:Agent 评测必须覆盖环境差异

论文:AgentBench: Evaluating LLMs as Agents,ICLR 2024;代码。

方法。 覆盖操作系统、数据库、知识图谱、数字卡牌、横向思维谜题、家居、网页购物和网页浏览八种环境,对 29 个 API 或开源模型进行评估。

发现。 论文将长期推理、决策与指令遵循识别为主要失败来源,并观察到当时商业模型与不超过 70B 的开源模型之间存在明显差距。

Harness 含义。 “Agent 能力”不是单标量。同一模型在不同 observation/action space 上可能表现完全不同;评测报告应按环境与失败类型拆分。

SWE-bench:从生成文本转向执行补丁

论文:SWE-bench: Can Language Models Resolve Real-World GitHub Issues?,ICLR 2024;代码与数据。

方法。 从 12 个流行 Python 仓库的真实 issue 与对应 PR 构建 2,294 个问题,给模型 issue 和历史代码快照,用测试执行生成补丁。

初始结果。 原论文最佳模型 Claude 2 只解决 1.96%,说明真实仓库的跨文件理解、长上下文与环境交互远难于函数补全。这个数字是 2024 年问题难度的历史坐标,不代表当前能力。

复现陷阱。 仓库版本、依赖镜像、隐藏测试、patch apply、测试超时和数据污染都会改变结果。报告总 resolved rate 之前,必须先报告环境构建成功率和不可判实例。

Harness 含义。 evaluator 应检查“原有测试不回归 + issue 对应测试通过”,并保存最终 diff;模型自述没有判分权。

OSWorld:真实 GUI 需要可重置环境

论文:OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments,NeurIPS 2024 Datasets and Benchmarks;代码。

方法。 在 Ubuntu、Windows 和 macOS 的真实应用中提供 369 个开放任务,包含环境初始化、交互和基于状态的执行式评测,覆盖文件、网页与跨应用流程。

原论文坐标。 人类完成率 72.4%,当时最佳 Agent 低于 12.2%;主要困难包括 GUI grounding 与操作知识。

Harness 含义。 GUI 截图只是 observation,不是可复现环境。任务必须有可重置快照、稳定时间/网络条件、动作坐标变换、失败截图与程序化验收。

AgentDojo:效用和安全必须同时测

论文:AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents,NeurIPS 2024 Datasets and Benchmarks;代码。

问题。 工具返回的邮件、网页或文档可携带 prompt injection,诱使 Agent 执行攻击者目标。只测正常任务成功率看不到这种风险。

方法。 建立可扩展环境,初版包含 97 个真实任务、629 个安全测试案例,以及多类攻击与防御。分别度量正常任务效用和攻击成功。

发现。 当时 SOTA 模型在无攻击时也会失败;现有攻击并非破坏所有安全属性,防御也没有普适成功。安全不能压成一句“模型是否拒绝”。

Harness 含义。 把用户目标、第三方数据、系统政策分成不同信任域;最小权限与审批要在执行层强制。评测至少同时报告 benign utility、attack success 与在攻击下仍安全完成任务的比例。

τ-bench:一次成功不等于可部署

论文:τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains,ICLR 2025;代码。

问题。 真实客服 Agent 既要多轮询问用户、调用 API,又要遵守退款、改签等领域政策;传统 benchmark 常把全部信息一次给齐。

方法。 用模拟用户、领域数据库/API、政策文档和目标状态构建交互,最终比较数据库状态与标注目标;提出passkpass^k 衡量同一任务多次运行都成功的可靠性。

原论文坐标。 当时先进 function-calling Agent 在任务上的成功率仍低于 50%;零售域 pass^8 低于 25%,暴露出单次成功率掩盖的随机不稳定。

Harness 含义。 对具有副作用的流程,报告 pass@1 不够。需要多种用户表达、流程扰动和重复种子;同时检查政策与数据库终态,而不只是回复是否礼貌。

把论文结论翻译成可实现需求

论文证据Harness 需求可测试断言
ReAct显式 step loop每轮只有一个合法状态转移
Reflexion外部反馈与 episode memory失败摘要可追溯到 evaluator 输出
DSPyprompt/pipeline 可版本和优化固定评测集上比较配置,不改安全策略
CodeAct可组合动作空间解释器无宿主凭据且受资源限额
SWE-agentACI 是实验变量工具 schema/反馈格式有版本与回归集
OpenHandsruntime 与 Agent 解耦新策略复用同一沙箱和 evaluator
SWE-bench执行式判分最终回答不能绕过测试失败
OSWorld可重置真实环境每个 task 有 setup/evaluate/teardown
AgentDojo联合安全评测正常效用与攻击成功率同时报告
τ-bench重复可靠性相同任务跨种子统计 pass^k

2026 前沿:第一次直接消融 Harness 组件

状态说明。 Beyond the Model: Demystifying Harness Effects in Software Engineering Agents 于 2026 年 9 月 26 日上传 arXiv;截至本文资料截止日尚未确认同行评审接收,因此不列入上面的“顶会论文”总表,结论应视为待复核的预印本证据。

这项工作直接比较 mini-SWE-agent 与产品级 harness,并构造 NanoHarness,在 SWE-bench Pro、ProgramBench、GitTaskBench 上跨 10 个 Qwen/DeepSeek 系列模型研究五个组件:tool registry、context compression、explicit planning、subagent 与 lazy skill。

预印本报告的关键信号不是“复杂一定更好”,而是明显的交互效应:

  • harness 收益依赖模型能力与任务类型,强模型在 SWE 式 issue repair 上的边际收益可能收窄;
  • 结构化工具和任务专用 subagent 的改善更稳定;
  • context compression 与通用 subagent 在仓库生成任务中可能伤害表现;
  • 全量 NanoHarness 相对 mini-SWE-agent 在两个被测强模型上分别提高 7.37 和 6.21 个百分点,但组件收益不能简单相加。

这正好给出后续研究模板:固定模型、任务、预算和 evaluator,对 harness 组件做因子消融,同时报告得分、step、tool call、prompt token 与失败行为。由于论文很新,复现时还要检查代码、任务抽样、模型可获得性和统计显著性,不能只转述百分点。

论文阅读时的四个常见误区

  1. 把模型进步误当成 harness 进步。 若同时换了模型和接口,不能归因给框架。
  2. 只抄成功率,不抄分母。 环境构建失败、超时和不可判实例如何计数会改变结果。
  3. 把 benchmark 当生产环境。 基准中的网络、凭据和副作用通常被简化,部署仍需单独威胁建模。
  4. 把反思当外部证据。 模型生成的 critique 仍是模型输出,只有工具结果、环境状态和独立 evaluator 提供了新证据。

复现顺序

  1. 先复现论文提供的最小 demo,固定 commit 和模型版本;
  2. 用 scripted model 重放一条成功和一条失败轨迹;
  3. 只改变一个变量:模型、ACI、prompt、预算或 evaluator;
  4. 至少重复 5–10 个种子,报告均值、方差和失败类型;
  5. 再引入攻击、超时、观察截断和中断恢复;
  6. 最后才比较总成功率与成本。

一手资料入口