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 本身成为实验自变量”的最新趋势。论文里的结果用于理解因果与失败模式,不用于维护实时排行榜。
总表
| 年份 | 工作 | 会议 | 它改变了什么 |
|---|---|---|---|
| 2023 | ReAct | ICLR | 把推理、动作和观察组织为通用闭环 |
| 2023 | Reflexion | NeurIPS | 把外部反馈转成跨 episode 的语言记忆 |
| 2024 | DSPy | ICLR | 把 prompt pipeline 变成可声明、可优化的程序 |
| 2024 | AgentBench | ICLR | 用八类交互环境评测 Agent,而非只评最终文本 |
| 2024 | SWE-bench | ICLR | 用真实仓库 issue 与测试执行评估软件工程 Agent |
| 2024 | CodeAct | ICML | 用可执行 Python 统一和组合动作空间 |
| 2024 | SWE-agent | NeurIPS | 证明 Agent-Computer Interface 是核心自变量 |
| 2024 | OSWorld | NeurIPS D&B | 把跨应用真实操作系统做成可初始化、可执行验收的环境 |
| 2024 | AgentDojo | NeurIPS D&B | 将任务效用与 prompt injection 安全联合评测 |
| 2025 | OpenHands | ICLR | 给出带沙箱、事件流和基准接入的通用软件 Agent 平台 |
| 2025 | τ-bench | ICLR | 用数据库终态和 pass^k 衡量政策遵循与重复可靠性 |
| 2025 | BrowserGym | TMLR | 统一浏览器观察、动作、任务与批量实验接口 |
| 2026 | Beyond the Model | arXiv 预印本 | 直接拆解工具、压缩、规划、子 Agent 与技能的独立作用 |
单篇长文索引
下列页面不是摘要卡片,而是可以单独阅读的论文解析。每篇都按“研究问题、方法结构、实验协议、关键证据、失败模式、Harness 映射、复现路线”展开。
| 序号 | 独立精读 | 最适合回答的问题 |
|---|---|---|
| 01 | ReAct:把推理、动作与观察编排成闭环 | 最小 Agent 循环为什么有效,哪里会卡死? |
| 02 | Reflexion:语言反馈如何成为跨回合记忆 | 不更新权重时,失败经验怎样进入下一次尝试? |
| 03 | DSPy:把 LM 流程变成可编译程序 | 怎样从手写 prompt 迁移到可优化模块? |
| 04 | AgentBench:从答案评测走向环境交互评测 | 多环境 Agent 能力应该怎样统一测量? |
| 05 | SWE-bench:用真实仓库与测试验证软件 Agent | 为什么最终补丁必须用环境状态验收? |
| 06 | CodeAct:以可执行代码统一动作空间 | 代码动作何时优于 JSON 工具,风险代价是什么? |
| 07 | SWE-agent:Agent-Computer Interface 就是能力边界 | 工具、反馈窗口和编辑接口能改变多少结果? |
| 08 | OSWorld:在真实操作系统中评测多模态 Agent | 怎样初始化、隔离并验收真实桌面任务? |
| 09 | AgentDojo:联合评测任务效用与提示注入安全 | 不可信工具输出如何劫持高权限 Agent? |
| 10 | OpenHands:从研究原型到通用 Agent 运行时 | 事件流、沙箱、动作与多 Agent 如何组成平台? |
| 11 | τ-bench:终态判分与重复可靠性 | 单次成功为什么掩盖政策遵循的不稳定? |
| 12 | BrowserGym:浏览器 Agent 的统一实验底座 | 如何让网页 Agent 的实验可比较、可复现? |
| 13 | Beyond 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、政策文档和目标状态构建交互,最终比较数据库状态与标注目标;提出 衡量同一任务多次运行都成功的可靠性。
原论文坐标。 当时先进 function-calling Agent 在任务上的成功率仍低于 50%;零售域 pass^8 低于 25%,暴露出单次成功率掩盖的随机不稳定。
Harness 含义。 对具有副作用的流程,报告 pass@1 不够。需要多种用户表达、流程扰动和重复种子;同时检查政策与数据库终态,而不只是回复是否礼貌。
把论文结论翻译成可实现需求
| 论文证据 | Harness 需求 | 可测试断言 |
|---|---|---|
| ReAct | 显式 step loop | 每轮只有一个合法状态转移 |
| Reflexion | 外部反馈与 episode memory | 失败摘要可追溯到 evaluator 输出 |
| DSPy | prompt/pipeline 可版本和优化 | 固定评测集上比较配置,不改安全策略 |
| CodeAct | 可组合动作空间 | 解释器无宿主凭据且受资源限额 |
| SWE-agent | ACI 是实验变量 | 工具 schema/反馈格式有版本与回归集 |
| OpenHands | runtime 与 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 与失败行为。由于论文很新,复现时还要检查代码、任务抽样、模型可获得性和统计显著性,不能只转述百分点。
论文阅读时的四个常见误区
- 把模型进步误当成 harness 进步。 若同时换了模型和接口,不能归因给框架。
- 只抄成功率,不抄分母。 环境构建失败、超时和不可判实例如何计数会改变结果。
- 把 benchmark 当生产环境。 基准中的网络、凭据和副作用通常被简化,部署仍需单独威胁建模。
- 把反思当外部证据。 模型生成的 critique 仍是模型输出,只有工具结果、环境状态和独立 evaluator 提供了新证据。
复现顺序
- 先复现论文提供的最小 demo,固定 commit 和模型版本;
- 用 scripted model 重放一条成功和一条失败轨迹;
- 只改变一个变量:模型、ACI、prompt、预算或 evaluator;
- 至少重复 5–10 个种子,报告均值、方差和失败类型;
- 再引入攻击、超时、观察截断和中断恢复;
- 最后才比较总成功率与成本。