Agent Harness:模型之外的智能体运行时

一句话定义

Agent Harness 是包在模型外面的确定性运行时:它把任务和环境状态整理成模型可见的上下文,把模型输出约束为动作,在权限与预算内执行动作,再把可审计的观察送回模型,直到成功、失败或触发停止条件。

它不是“再写一个 prompt”,也不等于 LangGraph、OpenHands 或某个 SDK。框架是实现载体;harness 是不随框架变化的职责集合。

用户目标
   │
   ▼
任务规格 ──► 上下文构造 ──► 模型适配器 ──► 动作协议
   ▲                                      │
   │                                      ▼
结果判定 ◄── 状态与轨迹 ◄── 观察归一化 ◄── 策略门 ──► 沙箱/工具/环境
                         ╲______________________________╱
                           预算、审批、追踪、恢复、评测

模型决定“下一步想做什么”;harness 决定“这一步是否允许、怎样执行、看见什么、何时必须停”。后者才是可靠性、安全性和可复现性的主要落点。

为什么单列这个专题

已有的 Agentic 框架 介绍 Planner、工具、记忆、多智能体与 Trace 等组成部分。本专题换一个更接近系统研究的视角:

旧问题Harness 视角的问题
Agent 会不会调用工具?工具接口是否让模型容易选对、填对、修错?
Agent 能否完成一次任务?在重复运行、策略扰动与失败恢复下是否仍可靠?
模型回答是否正确?环境最终状态是否正确,且没有越权副作用?
应该用哪个框架?哪些控制面必须由确定性代码掌握?
Trace 能否调试?能否重放到具体模型、prompt、工具版本和环境快照?

研究进展也支持这个拆分。ReAct 说明“推理—行动—观察”闭环有效;SWE-agent 进一步表明,Agent-Computer Interface 的设计本身就能显著改变结果;AgentDojo 与 τ-bench 则说明,安全与一致性不能靠单次任务成功率代替。

学习地图

页面解决的问题最终产物
01 核心架构与术语Harness 到底负责什么,边界在哪里?一张可用于设计评审的分层图
02 顶会论文谱系与精读近年顶会把问题推进到了哪里?论文主张、证据、局限与工程含义
03 从零实现最小 Harness怎样把概念变成可测试代码?零依赖 Python 实现与实验步骤
04 评测、复现与安全怎样避免“看起来会跑”的假进展?指标、数据记录、威胁模型与发布门禁
05 框架地图与选型SWE-agent、OpenHands、基准框架分别适合什么?从研究问题反推框架的决策表

13 篇独立论文精读

控制与程序: ReAct · Reflexion · DSPy

接口与运行时: CodeAct · SWE-agent · OpenHands

环境与评测: AgentBench · SWE-bench · OSWorld · τ-bench · BrowserGym

安全与前沿: AgentDojo · Beyond the Model(2026 预印本)

Harness 的九项核心职责

层最小职责常见失败
任务契约目标、成功条件、不可做事项“完成”只由模型自报
模型适配统一消息、工具调用、重试与用量换模型后协议悄悄变化
动作协议结构化动作、参数校验、版本靠正则猜自由文本中的命令
策略门allowlist、权限、审批、速率限制模型直接拥有环境最高权限
执行环境隔离、超时、资源限额、清理命令挂死或污染宿主机
观察构造截断、分页、去噪、来源标记一次日志淹没上下文
状态与恢复checkpoint、幂等键、重放重试导致重复付款/重复发信
可观测性事件、因果、版本、成本只存最终对话,无法定位失败层
评测环境状态验证、重复试验、安全断言把“说做了”当成“确实做了”

最重要的三个设计判断

1. 动作空间比“更聪明的 prompt”更基础

SWE-agent 把代码导航、查看和编辑做成适合模型的 ACI;CodeAct 把多步工具组合折叠为可执行代码。两者共同说明:模型能力由它能看见和能表达的接口共同决定。工具不是越多越好,而要满足可发现、可组合、反馈短而明确、错误可恢复。

2. 验收必须查看世界状态

SWE-bench 用测试验证补丁,τ-bench 比较最终数据库状态,OSWorld 用环境脚本检查应用状态。共同原则是:

模型声称成功  !=  任务成功
最终文本相似  !=  环境状态正确
一次运行成功  !=  系统可靠

因此成功判定器应与 agent 分离,而且尽可能由确定性代码执行。

3. 不可信数据不能获得指令权限

网页、邮件、仓库文件和工具返回值都是数据,不应因为被拼进同一个 prompt 就升级为指令。AgentDojo 展示了间接 prompt injection 对工具型 agent 的现实威胁。Harness 至少要提供来源标记、能力隔离、敏感动作审批和副作用审计;仅靠“忽略恶意指令”的系统提示不是安全边界。

最短阅读路线

只读六篇时,按下面顺序:

  1. ReAct(ICLR 2023):建立控制循环;
  2. SWE-bench(ICLR 2024):学习执行式验收;
  3. SWE-agent(NeurIPS 2024):理解接口就是能力的一部分;
  4. AgentDojo(NeurIPS 2024):建立不可信观察与能力安全模型;
  5. OpenHands(ICLR 2025):看完整通用运行时怎样拆层;
  6. τ-bench(ICLR 2025):把多轮用户交互、政策遵循与一致性纳入评测。

然后运行最小 Harness 实践,逐个替换模型、工具和验收器。不要从搭建大型多智能体系统开始;先证明单 Agent 的协议、权限、恢复和评测闭环是可信的。

专题口径

  • 资料核对截至 2026 年 10 月 11 日;
  • “顶会论文”只指已经由 ICLR、ICML、NeurIPS 等正式接收的版本;预印本和在审稿另行标记,不混写;
  • 论文数字保留其原始模型、数据与实验设置,不当作当前排行榜;
  • 工程结论优先来自论文、项目主页和官方仓库;
  • 本专题讨论 harness,不展开基础模型训练、检索系统或通用工作流引擎。