论文链接:LongHorizon-Harness: Advancing Long-Horizon Agents for Real-World Tasks 发表时间:2026年8月 机构:Ziyu Ma、Hailang Huang、Yong Wang、XiangXiang Chu 等 领域标签:Agent 系统架构 / Long-Horizon Tasks / Harness Engineering

一、论文背景:长程任务为什么这么难

要理解这篇论文,先把几个关键概念讲清楚。

什么是 Agent(智能体)? 简单说,Agent 是一个能"自己想、自己做"的 AI 系统——它不只是回答问题,而是能连续地观察环境、调用工具、修改文件、然后根据结果决定下一步。你让它"帮我修这个 bug"或"把这份数据整理成报表",它会像一个人坐在电脑前一样,一步步操作。

什么是 Harness(运行时框架)? Harness 是 Agent 的"操作系统"——它负责把模型接到环境里:构建上下文(给模型看什么)、中介工具(让模型能执行命令、点鼠标、读文件)、验证动作、从失败中恢复。同一个模型配上不同的 Harness,表现可以天差地别。最近 OpenAI 的技术博客就揭示,GPT-5.6 Sol 登顶 ARC-AGI-3 SOTA 靠的不是模型能力飞跃,而是两项 Harness 设置调整。换句话说,Harness 工程正在变得和模型本身一样重要。

什么是长程(long-horizon)任务? 长程任务是那些需要"几十上百步相互依赖的操作"才能完成的任务,比如"把这台机器配置成一个能跑深度学习的服务器"、“把这个游戏的画面 bug 找出来并修好”。METR 的报告指出,高级 Agent 的任务完成时间跨度大约每七个月翻倍,近期模型甚至加速到每四个月翻倍——Agent 正在被推向越来越长的任务。

长程任务为什么难?论文给出了三个系统性挑战:

  1. 复合错误和目标漂移:早期一个动作或决策错了,会沿着轨迹累积,逐渐让 Agent 偏离原始目标。
  2. 上下文腐化(Context Rot):随着交互历史越来越长,相关信息越来越难被检索和使用;一旦上下文利用率超过某个临界点,Agent 性能会断崖式下跌。
  3. 任务状态丢失:长程任务需要准确、最新的"任务状态"——哪些需求已满足、哪些动作已完成、产出了什么、从环境发现了什么。Agent 经常无法在整个执行过程中维持这个状态。

现有 Harness 的两个结构性缺陷(这是论文的核心洞察):

  • 缺陷一:任务执行和任务状态管理共享同一个不断增长的上下文。 Agent 用同一个上下文既执行任务又维护任务状态,执行历史越长,任务状态越难追踪。
  • 缺陷二:任务执行和完成评估耦合。 Agent 既执行子任务,又判断子任务是否完成;错误的自我评估会被记进任务状态,并成为后续决策的前提——错误就这样"自我授权"地传播下去。

这就是 LongHorizon-Harness 要解决的根本问题。

二、论文定位和关联工作

长程 Agent 的研究大致分几条路线:

路线一:扩大上下文窗口 / 更长记忆。 这条路线的思路是"上下文腐化了,那就装更多"。问题是上下文窗口再大也有上限,且长上下文里检索相关信息的难度随长度增长。

路线二:更强的模型(Scaling)。 这条路线赌"模型够强就不会犯错"。但论文的实验显示,即便 Claude Opus 4.7、GPT-5.5 这样的前沿模型,在 OSWorld 2.0 上也只有 18-20% 的 Binary 成功率——模型再强,也架不住错误在长轨迹里累积。

路线三:Harness / Scaffolding 工程。 代表性的有 Claude Code、Codex CLI、OpenClaw 等工业级 Harness。它们把模型接到真实环境,但仍然让执行和状态管理挤在同一个上下文里,没有从根本上解决两个结构性缺陷。

LongHorizon-Harness 的定位:它属于路线三,但做了一个范式级改变——把"任务状态管理"从执行上下文中剥离出来,并用一个独立的只读角色来验证完成情况。这相当于在 Agent 系统里引入了"权力分立":执行权、状态控制权、验证权分属三个不同角色。

维度现有 HarnessLongHorizon-Harness
状态管理位置与执行共享上下文执行之外的显式状态
状态更新依据Agent 自我声明环境独立验证的证据
完成评估Agent 自己判断独立只读 Auditor
执行上下文不断累积每轮新鲜(轨迹用后即弃)

三、问题定义:长程执行本质上是"任务状态管理"问题

论文的核心抽象是:把长程执行从"一个不断增长的会话"重新表述为"一个任务状态管理问题"。

形式化地说:给定任务 $\mathcal{T}$,系统通过一系列动态确定的轮次来处理它。每轮开始时有任务状态 $S_i$(结构化记录集合)和当前环境状态 $e_{i-1}$。目标是经过若干轮,让任务状态的所有需求被标记为 completed,且这个标记必须基于环境事实而非 Agent 自我声明。

这个抽象的精妙之处在于:它把"长程"这个模糊的概念,转化成了"状态如何被准确维护和更新"这个可工程化的问题。一旦状态是可信的,长程执行就退化成了一系列短程的、有界的问题——每一轮只是一个新鲜的短任务。

四、问题解法:Manage-Execute-Audit(MEA)循环

MEA 循环有三个角色,权力严格分离:

4.1 Manager(管理者)——只管状态,不碰环境

Manager 的能力边界是这套架构的关键设计:

  • 有权访问:原始任务、当前任务状态、所有累积审计报告。
  • 无权访问:计算机环境的任何直接接口——不能看应用状态、不能检查工作区、不能点鼠标敲键盘、不能改环境。

它的工作是构建"子任务契约" $c_i$:即时目标、验收标准、边界约束,以及相关的状态记录和审计报告。决策有四种:execute(继续执行)、done(任务完成)、blocked(受阻)、ask(需要用户输入)。

任务状态是结构化记录,分三种类型:Requirement(需求)、Artifact(制品)、Fact(事实),每条标记为 completed/pending/blocked/untrusted。铁律是:执行器的声明不能直接改变持久状态;一条记录只有在有"清洁审计证据"支持时才能标记为 completed。

4.2 Executor(执行器)——新鲜上下文,用后即弃

每轮执行是一个新鲜的、有预算限制的片段:

  • 输入:原始任务、当前状态、契约、契约引用的审计报告。
  • 不接收:早期轮次的原始交互轨迹。
  • 在片段内可以多轮规划、交互、修订。
  • 片段结束时,原始轨迹和内部推理全部被丢弃,只转发执行报告 $o_i$ 给审计。

执行器分 GUI(鼠标键盘、应用界面)和 CLI(shell、文件、代码)两种,能力集严格分离——GUI 执行器碰不到工作区文件,CLI 执行器碰不到应用界面。通过统一的 AgentAdapter 接口,可以接入 Claude Code、Codex CLI、OpenClaw 等现有后端,保留它们原生的规划和工具使用循环——Harness 不替换后端内部过程,只控制上下文、工具、权限、预算和返回报告。

4.3 Auditor(审计员)——只读,独立验证

Auditor 是这套架构的"信任锚点":

  • 输入:原始任务、状态、契约、执行报告——但不接收执行器的原始轨迹或内部推理。
  • 从排除执行器轨迹的新鲜上下文开始,通过独立比较环境与契约中的目标和验收标准来判断完成。
  • 严格只读:可以改变观察视图,但不能修改任何任务相关环境状态;不能创建、编辑、覆盖、移动、删除受保护制品;不能执行状态变更命令。任何变异被记录为"完整性违规",由此产生的报告不能支持 completed。

审计报告包含三个维度:完成状态(complete/incomplete/blocked)、完整性状态(clean/suspect/violation)、任务状态更新(验证的事实、证据、剩余差距)。注意权责分离:Auditor 可以"提议"对状态记录的更改,但由 Manager 决定如何纳入 $S_{i+1}$。

4.4 全景对比

维度传统 HarnessMEA 循环
上下文增长单调累积每轮重置
状态更新自我声明环境验证
错误传播沿轨迹累积被审计切断
角色分离无执行/状态/验证三分

五、评估指标与实验证据

5.1 三个基准,三种交互域

基准任务数特点指标
WeaveBench114需协调 GUI+CLI 的桌面工作流,8 领域PassRate(分数≥0.8)、Overall
OSWorld 2.0108桌面工作流,人类中位 1.6 小时Binary(满分才算成功)、Partial
Terminal-Bench 2.1多任务命令行任务,每任务 3 次,超时 5h成功率

5.2 核心结果(Qwen 3.7-Plus + Claude Code 后端)

基准基线LongHorizon-Harness提升
WeaveBench PassRate51.8%80.7%+28.9pp(1.56×)
Terminal-Bench 2.169.7%77.2%+7.5pp
OSWorld 2.0 Binary2.8%8.3%+5.5pp(2.96×)
OSWorld 2.0 Partial21.5%35.2%+13.7pp
OSWorld 2.0 Opus 4.7 子集 Binary20.0%34.3%+14.3pp

这个实验设计为什么有证明力? 关键在于 WeaveBench 的官方参考结果——Claude Opus 4.7 + Claude Code 只有 41.2%,而 LongHorizon-Harness 用更弱的 Qwen 3.7-Plus 拿到了 80.7%,几乎是官方最强结果的两倍。这说明提升来自架构而非模型本身。

5.3 难任务收益更大(Terminal-Bench 2.1 按难度分解)

难度基线LH-HarnessΔ
easy0.8331.000+0.167
medium0.7760.818+0.042
hard0.5330.656+0.122

难任务收益是 medium 的近 3 倍——这正是"任务越长、中间失败点越多、显式状态管理越重要"的直接证据。如果是模型变强,easy/medium/hard 的提升应该相对均匀;只有架构性改变才能让 hard 任务 disproportionately 受益。

5.4 能力作为"系统属性"的反直觉发现

模型配置WeaveBench Games 均分Token/任务
Claude Opus 4.7Claude Code 基线0.68016.5M
Claude Opus 4.7LongHorizon-Harness0.80911.1M
Qwen 3.7-PlusClaude Code 基线0.52410.7M
Qwen 3.7-PlusLongHorizon-Harness0.73334.3M

两个发现:(1) Qwen + LH-Harness(0.733)超过了 Opus + 基线(0.680)——架构可以弥补模型差距;(2) 对于更强的模型(Opus),LH-Harness 让 token 从 16.5M 降到 11.1M;对于更弱的模型(Qwen),token 从 10.7M 升到 34.3M。原因是强模型能用更少的审计-重规划轮次满足契约,弱模型要在重复执行和恢复上花更多推理。

六、效果优势的根源解释

baseline 的根本局限是什么? 传统 Harness 的核心问题是**“信任假设”——它假设 Agent 的自我评估是可信的**。在短任务里这个假设勉强成立,但在长程任务里,错误自我评估会沿轨迹累积传播。这不是"它没做状态管理",而是"它的状态管理与执行耦合在同一上下文里,导致状态被执行噪声污染"。

LongHorizon-Harness 的根本性改变:它在信息流和约束上做了三个本质改变:

  1. 新鲜上下文执行 → 切断上下文腐化。每轮执行从干净上下文开始,早期轮次的噪声不会进入当前决策。反事实:如果不丢弃轨迹(即用累积上下文),上下文越长性能越差——这正是 baseline 的退化模式。

  2. 只读独立审计 → 切断"自我授权"错误传播。Auditor 不接收执行器的轨迹和推理,只看环境真实状态,且不能修改环境。这从机制上杜绝了"Agent 声称完成 → 错误进入状态 → 后续基于错误决策"的循环。反事实:如果 Auditor 能写环境,它就可能"帮"Agent 伪造完成证据。

  3. 权责分离 → 状态更新只基于可验证的环境事实。Manager 无环境接口,所以它的状态更新只能来自 Auditor 的清洁证据,不能被"我刚刚执行得很好"的主观判断污染。

因果链:方法差异(MEA 分立 + 新鲜上下文 + 只读审计)→ 机制变化(上下文不腐化 + 错误不自我授权传播 + 状态只基于环境事实)→ 指标提升(难任务 +0.122、WeaveBench 近乎翻倍)。

Manager 开销很小(WeaveBench 2.8%、OSWorld 2.0%、Terminal-Bench 8.1%)——说明显式状态维护引入的计算开销很少,主要额外投资在 Auditor(19-38%),而这笔投资直接换来了"状态可信"。

七、必要知识反推

要做出这套工作,作者至少必须掌握:

领域知识层:

  • 真实世界 Agent 部署的失败模式(上下文腐化、目标漂移、状态丢失)——这只能来自大量真实轨迹分析,不是理论推演。
  • 工业级 Harness(Claude Code、Codex CLI、OpenClaw)的内部架构和局限。

方法论知识层:

  • 权力分立思想——从政治学/软件工程(如只读副本、事务隔离)借鉴"执行/状态/验证"分立的原则。这是最关键的创造性节点。
  • 部分可观测决策过程的形式化——任务状态、环境状态、观测的区分。

工程知识层:

  • GUI 与 CLI 能力边界的严格分离实现。
  • AgentAdapter 抽象——如何让任意后端保留原生循环的同时受 Harness 控制。
  • 只读监控与完整性违规检测的工程实现。

知识融合的关键节点:把"政治学的权力分立"迁移到"Agent 系统架构"——意识到长程失败的本质是"信任自我评估",而解法是让验证权独立于执行权。这个跨域类比是整篇论文的灵魂。

八、论文中可以提取的通用性灵感

灵感一:用权力分立根治"自我评估信任假设"

  • 核心思想:任何需要"判断自己做得对不对"的系统,都会面临自我评估的信任问题;解法是让"验证权"独立于"执行权"且只读。
  • 论文证据:只读 Auditor 把 WeaveBench 从 51.8% 拉到 80.7%;移除审计完整性检查会让错误传播。
  • 推广场景:(1) 自动驾驶的安全监督模块(只读传感器,独立判断是否安全);(2) 自动化交易系统的风控(独立于策略执行);(3) RAG 系统的答案审计(独立验证检索证据是否支持答案);(4) CI/CD 的独立测试阶段;(5) 自动化科研 Agent 的实验复现验证。

灵感二:新鲜上下文执行切断历史噪声

  • 核心思想:长程任务不必用一个不断增长的上下文;可以把任务拆成一系列"有界短任务",每轮用新鲜上下文,只保留结构化状态。
  • 论文证据:每轮丢弃执行轨迹,只保留任务状态和审计报告;Terminal-Bench hard 任务收益最大。
  • 推广场景:(1) 多步推理(每步重新载入关键事实而非全部历史);(2) 长对话系统(用结构化记忆替代原始历史);(3) 代码重构(每次只处理一个有界变更)。

灵感三:架构可以弥补模型差距

  • 核心思想:更弱的模型配上更好的架构,可以超过更强的模型配上更差的架构;架构投资有杠杆效应。
  • 论文证据:Qwen 3.7-Plus + LH-Harness(0.733)> Opus 4.7 + 基线(0.680)。
  • 推广场景:(1) 中小团队用架构工程弥补模型代差;(2) 端侧 Agent 用受限模型+强架构达到云端效果;(3) 开源模型生态的竞争力来自配套架构而非参数量。

灵感四:强模型+好架构反而更省 token

  • 核心思想:当架构减少了无效的重试和恢复,更强模型能用更少 token 完成任务——能力越强,架构的"省 token"效应越明显。
  • 论文证据:Opus 4.7 的 token 从 16.5M 降到 11.1M。
  • 推广场景:(1) Agent 服务的成本优化应同时投资模型和架构;(2) 评估 Agent 不能只看成功率,要看"成功率/token"的效率前沿。

本精读基于 LongHorizon-Harness 论文全文撰写,覆盖 Abstract、Introduction、Method(MEA 循环全部公式与设计)、Experiments(三个基准全部结果表与消融)、Analysis。