CodexQA

Industry & PracticeTechniques & Tutorials

当 Harness 丢失信号:用配对实验分开挽救和伤害

CodexQA 团队28 min read

北京师范大学与贝壳的预印本把智能体恢复看成因果决策:从同一状态比较刷新与不刷新,把挽救和伤害拆开。在 Qwen3-14B 的 ALFWorld 上,因果干预路由器 CIR 把成功率从 70.33% 提到 73.33%,且不触碰观察正确的轨迹。返回的新观察并不是收益的唯一来源。

In this piece

当 Harness 丢失信号:大语言模型智能体恢复的因果评测

Shuyao Xiao(北京师范大学人工智能学院、贝壳控股),Shengling Wang(北京师范大学人工智能学院),Xuan Chen(贝壳控股),Ke Chao(北京师范大学人工智能学院),Ming Cui(贝壳控股),Feifei Qian(北京师范大学人工智能学院),Chaoyang Mei(贝壳控股),Fanlin Meng(贝壳控股),Ziming Yu(北京师范大学人工智能学院),Junxi Yin(贝壳控股)

邮箱:xiaoshuyao@mail.bnu.edu.cn

预印本,2026-09-30

摘要

大语言模型智能体依赖外部 harness 在模型与环境之间传递信息,并从执行错误中恢复。Harness(脚手架)是包在模型外面的运行层,负责传递观察、维护上下文并协调一长串动作。然而,恢复通常只按平均任务成功率来评判。这掩盖了一个重要张力:同一种操作,既可能挽救一条正在失败的轨迹,也可能打乱一条本来会成功的轨迹。轨迹(trajectory)是一次任务从开始到结束的完整动作与观察记录。

我们把恢复看成一个因果决策问题。从同一个执行状态出发,比较「做恢复」和「不做恢复」之后发生的事,把挽救和伤害分开,并研究恢复的价值如何随时间变化。然后我们提出因果干预路由器(Causal Intervention Router,CIR)。它是一个轻量策略,只用恢复之前就能拿到的信息,决定这次干预值不值得做。

在 Qwen3-14B 上的长程 ALFWorld 任务中,CIR 把成功率从 70.33% 提高到 73.33%,增益为 3.00 个百分点。ALFWorld 是用文本动作和观察完成家务的长程环境。它没有刷新任何一条被评测、且观察正确的轨迹。额外对照表明,恢复的收益不能只用环境返回的新观察来解释。这些结果给出一种可操作的办法:既评测恢复,又有选择地使用它。

1 引言

大语言模型智能体并不是单独行动的。外部 harness 在模型与环境之间传递观察,维护上下文,并协调一长串动作(Packer 等,2023;Wu 等,2024a;Yang 等,2024;Yao 等,2026)。如果观察过时或缺失,智能体可能按错误信息行动,错误还会扩散到后面的步骤(Yao 等,2023;Shah,2026;Ma 等,2026)。Harness 可以再向环境查询一次作为回应,这叫做刷新(refresh)。

刷新并不总是有帮助。它可能把失败变成成功,也可能让一条本来能做完任务的轨迹偏离。我们把这两种结局叫做挽救(rescue)和伤害(harm)。已有方法通过反思、外部反馈或搜索来改进恢复(Shinn 等,2023;Madaan 等,2023;Gou 等,2024;Zhou 等,2024)。评测却通常只报告总成功率,或指出失败发生在哪里(Ma 等,2024;Cemri 等,2025;Zhang 等,2025)。这些汇总看不出恢复改变了哪些轨迹。同样的平均增益,背后的挽救次数和伤害次数可以差很多。

这带来两个困难。第一,普通的一次运行只给出一种结局。智能体要么恢复,要么不恢复就继续(Holland,1986)。没有另一种结局,就无法判断最终结果是不是恢复造成的。第二,时机重要。出错之后,后面的动作和反馈会改变局面。现在有帮助的干预,稍后再做可能无效,甚至有害。有用的评测必须从同一状态比较两种选择,并在不同时间重复这一比较。

这两点合在一起,暴露出「评测一种恢复操作」和「决定何时使用它」之间的缺口。平均效应为正,并不表示恢复可以放心广泛使用。同一个平均数,可能来自少数可靠的挽救,也可能来自大量挽救被大量伤害抵消。一个不大的平均数,也可能藏着某一类可识别状态上的很大收益。核心问题是:对给定轨迹,刷新是否有效;它的期望收益何时超过风险。

图 1 展示我们的做法。我们先引入受控的观察错误。从同一个执行点分出两条续跑:一条刷新,一条不刷新。这种配对比较揭示刷新是挽救了任务、伤害了任务,还是没有改变结局。我们也比较不同的刷新变体,看效应由什么驱动。然后用这些配对结局训练 CIR。CIR 用决策时刻已有的信息决定是否刷新,并限制对观察正确的轨迹造成伤害。

评测框架总览

图 1:框架总览。(A)引入受控观察错误,并在不同时间尝试恢复。(B)从同一执行点出发,有刷新和无刷新的配对运行揭示挽救、伤害和不变的结局。(C)CIR 用干预前已有的信息,决定刷新的期望收益是否超过风险。

配对设计有两个用途。作为评测工具,它在固定更早轨迹的前提下度量恢复的效应。作为监督来源,它揭示恢复会改变最终结局的那些状态。用来评测的同一批配对结局,也用来训练 CIR。测试时,它只用一次真实运行里当时就能拿到的信息。

长程 ALFWorld 上的实验表明,刷新的价值随错误类型、干预时间和轨迹而变化。实验也表明,新返回的观察并不是收益的唯一来源。CIR 把这些证据变成一条有选择的策略。对 Qwen3-14B,它把成功率从 70.33% 提高到 73.33%,并且不刷新任何一条被评测的干净轨迹。主要贡献如下。

  1. 我们提出一套评测 harness 恢复的配对框架。从恢复前的同一状态继续,分别做干预和不做干预,从而把最终结局的变化归因于恢复,并把挽救和伤害分开。跨时间和跨恢复变体的比较,说明刷新何时有帮助,以及操作的哪些部分起作用。
  1. 我们提出 CIR。它用配对证据决定恢复何时值得承担风险。它不需要重新训练底层智能体,只用干预前已有的信息。在 Qwen3-14B 上,CIR 把总成功率提高 3.00 个百分点。当智能体收到更严重过时的观察时,增益达到 9.33 个百分点。所有被评测的干净轨迹都未被触碰。

2 相关工作

Agent Harness 与恢复机制

Agent harness 组织模型、工具和环境之间的交互,因此它的设计可以直接影响任务表现(Yao 等,2026)。AutoGen(Wu 等,2024a)提供可组合的对话模式,SWE-agent(Yang 等,2024)研究智能体与计算机的界面,StateFlow(Wu 等,2024b)用显式状态管理长任务。恢复方法通过反思、反馈或搜索来修正执行(Li 等,2026)。Reflexion(Shinn 等,2023)从任务反馈中学习,Self-Refine(Madaan 等,2023)迭代修改输出,CRITIC(Gou 等,2024)用外部工具核验输出,LATS(Zhou 等,2024)把反馈和树搜索结合起来。这些方法改进了智能体如何恢复,但它们的汇总评测看不出哪些轨迹被恢复改变,也看不出哪些本来成功的轨迹被恢复打乱。这个缺口很重要,因为没有可靠反馈的自我纠正,可能把一个起初正确的回答改坏(Huang 等,2024)。我们改为从同一起点测量挽救和伤害,并用这些结局学习何时应该施加恢复。

Agent 失败诊断与因果干预

过程级评测研究智能体失败发生在哪里、为什么发生(Barke 等,2026)。AgentBoard(Ma 等,2024)追踪细粒度进度,MAST(Cemri 等,2025)给出多智能体系统的失败分类,Who&When(Zhang 等,2025)找出负责的智能体和步骤,CatchBench(Zhao 等,2026)从配置、在线前缀和已完成轨迹审计失败。

反事实方法从描述失败,走向追溯或修复失败。反事实(counterfactual)是「如果当时做了另一个选择,结局会怎样」。在带记忆的对话里,Xiao 等(2026)用四条反事实轨迹,把错误经记忆更新和后续问题传播的路径分开。Causal Agent Replay(Shah,2026)估计单个步骤的贡献,CausalFlow(Bonagiri 等,2026)生成有针对性的修复,HarnessFix(Chen 等,2026)诊断并修补 harness 缺陷,DoVer(Ma 等,2025)通过干预检验调试假设。这些方法定位原因,或修复已经观察到的失败。它们并不直接回答我们的问题:从当前这同一个状态出发,给定的恢复操作会改善还是破坏最终结局?应该在什么时候使用它?我们用配对运行,以及一条限制干净轨迹上已观察伤害的策略,来回答这些问题。

这一区分把我们的工作和失败定位、修复生成都分开。我们保持恢复操作不变,研究它在不同状态和时间上的因果价值。这样挽救和伤害可以直接比较,同一份证据既用于评测,也用于训练部署时的决策规则。

3 恢复的配对反事实评测

总成功率无法告诉我们恢复是否改变了某一条特定轨迹。因此我们从同一个任务状态比较「恢复」和「继续执行」。对观察做受控改变,使错误显式可见;配对运行则把恢复决策孤立出来,并同时揭示挽救和伤害(图 1(A–B))。

3.1 扰动与恢复设定

评测单位是一个任务实例,记为 i。在运行中预先定好的一点,harness 保持环境不变,只修改展示给智能体的观察。观察条件 e 可以是干净(clean)、过时(stale)或缺失(missing)。干净观察保留当前信息。过时观察把它换成更早状态的信息。缺失观察去掉其内容。这样,我们改变智能体能用的信息,而不改变底层任务。

恢复延迟 d 是从被修改的观察到恢复操作 m 之间的环境动作数。刷新会再次查询环境,并把当前观察交给智能体。重规划(replanning)则要求智能体只用上下文里已有的信息,重新考虑下一步动作。三元组 (e, d, m) 因此规定了:智能体收到什么信息、恢复何时发生、使用哪种恢复操作。第 5.1 节给出具体设置。

3.2 反事实比较

对每个任务 i 和观察条件 e,执行持续到延迟 d。然后从完全相同的状态把运行分叉。一条分支不恢复,继续执行。另一条施加操作 m。两条分支共享这一决策之前的环境状态和全部执行历史。

因为两条分支使用相同的状态、历史、模型和解码设置,对这里研究的状态而言,它们的差异可以归因于恢复决策。

沿用潜在结果记号(Rubin,1974),令 Y_i^0(e) 和 Y_i^m(e, d) 分别表示不恢复、以及在延迟 d 使用操作 m 时的二元任务结局。在确定性重放下,不恢复的续跑在不同延迟比较之间是共享的,因此我们在 Y_i^0(e) 里省去 d。恢复的实例级效应是

τ_i^m(e, d) = Y_i^m(e, d) − Y_i^0(e)。(1)

3.3 挽救与伤害

我们区分恢复效应的两个方向。挽救是恢复把失败变成成功;伤害是恢复把成功变成失败。

令 1[·] 表示指示函数:括号内条件成立时为 1,否则为 0。实例 i 的挽救指示 R_i^m(e, d) 和伤害指示 H_i^m(e, d) 定义为

R_i^m(e, d) = 1[Y_i^0(e) = 0 且 Y_i^m(e, d) = 1],

H_i^m(e, d) = 1[Y_i^0(e) = 1 且 Y_i^m(e, d) = 0]。(2)

如果两条续跑都成功,恢复保持了成功。如果都失败,恢复没有改变这次失败。再加上挽救和伤害,这四种情况构成配对比较的全部可能结局。因此实例级恢复效应可以写成

τ_i^m(e, d) = R_i^m(e, d) − H_i^m(e, d)。(3)

平均恢复效应等于挽救率减去伤害率。同样的净效应,可能来自很少的变化,也可能来自两个方向上都很频繁的变化。只看平均数无法区分这两种情形。配对结局也为学习「何时恢复更可能挽救而不是伤害一条轨迹」提供监督。

这个看法改变了什么才算成功的恢复方法。不能只看干预之后成功了多少次,因为其中许多轨迹即使不干预也会成功。评测应该问:方法是否改变了结局、改变的方向是什么、发生在轨迹的哪一点。配对设计用同一组结局回答这三个问题。

4 从评测到有选择的恢复

配对评测要等两条分支都跑完,才能知道恢复有没有帮助。在真实运行里,harness 必须在两种结局都还未知时做决定。CIR 从当前状态估计恢复的价值。只有期望收益能够抵偿风险时,它才刷新。一次刷新从环境取得新观察,并把它加入上下文。每条轨迹最多刷新一次(图 1(C))。

CIR 做一个简单区分。发现「看起来有问题」,不同于预测「某一种回应会有帮助」。异常检测器回答第一个问题。恢复策略还必须回答第二个。有些出错的轨迹刷新也救不回来;有些看起来正常的轨迹却会被刷新伤害。CIR 把错误检测,与「刷新之后成功」和「继续执行会成功」这两个分开的预测结合在一起。

4.1 决策目标

令 X_{i,d} 表示延迟 d、恢复之前可用的信息。决策 π(X_{i,d}) ∈ {0, 1} 表示现在是刷新,还是先继续。令 Y_i^π(e) 表示这条序贯策略下的最终二元结局。如果没有触发刷新,Y_i^π(e) = Y_i^0(e)。否则,它等于策略所选延迟上刷新之后的结局。

令 ε ∈ [0, 1] 表示干净轨迹上允许的伤害率,E[·] 表示在指定观察条件下对任务实例的期望。我们用 π* 表示最优策略,并把有选择的恢复写成

π* = arg max_π E[Y_i^π(e) − Y_i^0(e) | e ≠ clean],(4)

约束为 E[Y_i^0(e) · (1 − Y_i^π(e)) | e = clean] ≤ ε。

目标奖励的是:观察有错时,相对于从不恢复的改进。只最大化增益,可能鼓励频繁刷新,从而破坏正确的执行。第二行限制这一风险。它的值是:不恢复会成功、但在该策略下失败的干净轨迹所占比例。运行时,两种可能结局都不知道。因此 CIR 必须用决策前已有的信息估计刷新的价值。

4.2 估计恢复价值

只检测可疑观察是不够的。即使刷新不会改善最终结局,错误也可能存在。CIR 把两个问题分开。智能体是否收到了有故障的观察?有刷新和没有刷新时,任务成功的可能性各是多少?它用执行行为、动作与观察的一致性、任务进度和上下文信息来回答。

令 x 表示 X_{i,d} 的一个取值,Pr(· | ·) 表示条件概率。p_err(x) 是该轨迹已收到错误观察的概率,p_0(x) 是之后不再恢复时成功的概率,p_1(x) 是立即刷新后成功的概率。把刷新记为 ref,把它在延迟 d 的最终结局记为 Y_i^ref(e, d),定义为

p_err(x) = Pr(e ≠ clean | X_{i,d} = x),(5)

p_0(x) = Pr(Y_i^0(e) = 1 | X_{i,d} = x),

p_1(x) = Pr(Y_i^ref(e, d) = 1 | X_{i,d} = x)。

CIR 用三个模型估计这些量。监督信号来自第 3 节配对数据中的观察条件、不恢复结局和刷新结局。两个结局模型采用 T-learner 式设计,分开估计两种决策结局(Künzel 等,2019)。T-learner 是分别为「处理」和「不处理」训练两个模型的估计方式。这种分开避免把很高的异常概率当成「刷新有益」的证据。为简洁起见,概率和它们的估计使用同一套记号。

为计入可能的挽救和伤害,我们构造挽救分数 s_R(x) 和伤害分数 s_H(x)。

s_R(x) = (1 − p_0(x)) · p_1(x),s_H(x) = p_0(x) · (1 − p_1(x))。(6)

继续执行很可能失败、而刷新很可能成功时,挽救分数高。继续执行很可能成功、而刷新很可能失败时,伤害分数高。这些分数帮助识别刷新更有希望的状态。边际成功概率并不能决定同一任务被挽救或被伤害的概率(Tian 与 Pearl,2000)。因此我们不把这些分数解释成挽救概率或伤害概率。

令 λ > 0 表示伤害惩罚。令 u_λ(x) 表示从挽救分数中减去加权伤害分数后得到的效用。

u_λ(x) = s_R(x) − λ · s_H(x)。(7)

当 λ = 1 时,该式退化为 p_1(x) − p_0(x),即刷新与不恢复之间预测成功概率之差。增大 λ 会降低高伤害分数状态的效用,使这些状态更不容易触发刷新。因此,λ 控制每一次决策里赋予伤害的权重,而 ε 限制策略把成功变成失败的全部干净轨迹所占比例。

4.3 动态恢复决策

随着智能体采取更多动作、收到更多反馈,恢复的价值会变。因此 CIR 在若干候选时间重新考虑刷新,而不是承诺一个固定延迟。在每个时间点,它比较「立即刷新」和「之后也不再恢复、继续执行」。如果选择继续,状态改变之后还可以再考虑。

令 p_fail(x) = 1 − p_0(x) 表示之后不再恢复时预测的失败概率。令 α、β、γ 分别表示错误概率、失败概率和效用分数的阈值。令 d_min 表示允许的最早刷新延迟。指示函数 1[·] 已在第 3 节定义。任何刷新发生之前的决策规则是

π(X_{i,d}) = 1[d ≥ d_min,且 p_err(X_{i,d}) ≥ α,且 p_fail(X_{i,d}) ≥ β,且 u_λ(X_{i,d}) ≥ γ]。(8)

CIR 按时间顺序检查候选时间,在第一个全部条件都满足的时间刷新。之后不再触发恢复。如果没有任何候选时间满足条件,任务就不恢复地继续。

我们在开发数据上选择决策阈值。在干净轨迹上观察到的伤害率不超过 ε 的设置里,选择错误观察下净增益最大的那一个。然后把这条固定策略用到新任务上。这一过程与经验福利最大化有关(Kitagawa 与 Tetenov,2018):配对恢复结局定义收益,干净轨迹的结果定义风险上限。

5 实验

实验回答三个问题。刷新何时有帮助、何时造成伤害?刷新的哪些部分产生收益?CIR 能否用这些证据,在新任务上有选择地恢复?我们先描述共同设置,再逐一回答。

5.1 实验设置

#### 任务、智能体与扰动

我们使用 ALFWorld(Shridhar 等,2021)。智能体通过文本动作和观察完成长程家务任务。智能体是 Qwen3-14B(Yang 等,2025),配一个固定的 ReAct 式 harness(Yao 等,2023)和贪心解码。ReAct 是把推理和行动交替写进同一条轨迹的提示方式。每次运行限制为 49 个模型回合和 64 个环境动作。智能体轨迹在八块 NVIDIA H200 GPU 上生成。我们先在不注入错误、也不恢复的情况下跑每个任务,称为事实轨迹(factual trajectory)。观察在该轨迹环境动作的 25% 处被修改。

主要扰动是两步过时观察:用两个环境动作之前的观察替换当前观察。额外分析使用一步过时观察(一个环境动作之前),以及缺失观察(内容被替换成一条固定的「观察不可用」消息)。刷新会额外执行一个 look 动作,并把返回的当前观察追加到记录末尾。我们测试恢复延迟 d ∈ {0, 1, 2, 4}。

#### 配对运行与数据划分

每次比较从同一个环境状态和模型输入启动两次运行,模型和解码设置相同。两次运行的差别只在于是否施加指定的恢复操作。如果一个任务能到达所选干预点,并且有足够的更早历史来构造所需的过时观察,就称为前缀可行(prefix-feasible)。我们也核验分叉之前两次运行的历史相同。

每个队列有不同角色。主队列和独立队列检验恢复效应能否复现。机制队列把刷新的组成部分拆开。评测队列测试 CIR。

有些分析只看事实轨迹成功的任务。为检查结论是否依赖这一筛选,我们也报告完整队列,保留每一个前缀可行的任务。主队列有 106 个任务,独立队列有 100 个单独执行的任务。这些队列覆盖可用的前缀可行任务,不是完整的 ALFWorld 分布。标签「事实成功」和「事实失败」描述的是未被修改的那次运行。挽救和伤害始终是在同一观察条件下比较恢复与不恢复。

主队列的事实成功分析保留 106 个 valid_unseen 任务中的 93 个;独立队列贡献 89 个事实成功任务。机制对照使用单独的 74 个任务集合,其中 67 个通过附录 A 详述的配对分析协议检查。

CIR 在 93 个主任务上拟合,在另外 76 个 valid_seen 任务上评测。valid_seen 和 valid_unseen 是 ALFWorld 的划分名称。拟合和评测之间没有重复任务。评测任务中 75 个前缀可行。每个任务在四种观察条件下测试,共 300 个评测回合。拟合好的模型和决策阈值不再调参。每个延迟上,所有任务都留在分母里。如果任务已经结束,就把它的最终结局往后带,不再施加恢复。

#### 估计与指标

主要量是恢复与不恢复之间任务成功率的配对差,单位是百分点(pp)。在延迟 d,我们也比较两步过时观察和干净观察之间的这一效应。我们报告第 3.3 节的配对结局计数。置信区间使用任务级聚类自助法,使同一任务的全部条件在每次重抽样中留在一起(Efron,1979)。对学到的策略,我们另外报告策略多久干预一次,以及多久伤害一条干净轨迹。

#### CIR 拟合与对照策略

CIR 拟合三个 ℓ2 正则逻辑回归模型,C = 0.1,用来估计式(5)中的观察错误概率和两个结局概率。输入只包含候选干预之前可用的信息,包括动作与推理的重复、空操作行为、观察新颖度、动作与观察的一致性、任务进度,以及上下文预算统计。

为把模型拟合和阈值选择分开,我们把 93 个训练任务分成五组。轮流在四组上拟合、在留出的一组上预测。这样每个训练任务都有一个折外(out-of-fold,OOF)预测,来自没见过该任务的模型。我们根据这些预测选择决策阈值,然后在全部训练任务上重新拟合模型。所有模型参数和阈值在测试评测之前固定。我们使用 λ = 2,ε = 0.02,d_min = 1,阈值 α = 0.876,β = 0.052,γ = 0。评测时,CIR 按顺序检查 d ∈ {1, 2, 4},最多刷新一次。

我们把 CIR 与「从不刷新」,以及一个序贯异常基线比较。异常基线在每个候选时间使用同一个错误检测器,但不预测刷新是否有帮助。它的阈值用与 CIR 相同的 OOF 预测、目标和干净伤害上限来选择。我们还加入一个训练时干预率与 CIR 对齐的版本。两个基线都不在测试集上调整。

5.2 恢复取决于状态与时机

图 2:93 个任务的事实成功队列中,跨延迟的配对恢复效应(a),以及完整的前缀可行主队列(n = 106)和独立队列(n = 100)(b)。「过时」指两步过时条件。误差线是任务级聚类自助 95% 置信区间。

我们首先问:同一次刷新操作,在不同状态、不同时间是否有不同效应。从 93 个事实轨迹成功的主任务开始。在干净观察下,继续执行会复现已知的成功,因此刷新之后的任何失败都可以直接解释为伤害。图 2(a)展示这一队列。立即刷新在干净观察下把成功率降低 6.45 个百分点(95% CI [−11.83, −2.15])。在两步过时观察下提高 7.53 个百分点(95% CI [−3.23, 18.28])。这两个效应之差是 13.98 个百分点(95% CI [2.15, 24.73])。过时减干净的差值在更晚的延迟上仍为正。延迟 1、2、4 的估计分别是 18.28、15.05 和 13.98 个百分点。

在这一队列里,干净观察下不恢复地继续,会复现成功的事实轨迹,因此按构造 Y_i^0(clean) = 1。刷新可以保持或伤害这次成功,但不能制造挽救。因此我们把事实失败也放进分析,再做一遍。

独立的 89 个事实成功任务队列,在每个测试延迟上都呈现同样的排序。过时观察下的效应比干净观察下更正,差值从 8.99 到 14.61 个百分点。在延迟 2,刷新使成功率在过时观察下变化 +10.11 个百分点,在干净观察下变化 −4.49 个百分点。

接下来我们把两个队列里每一个前缀可行任务都包括进来。主队列有 13 个事实失败,独立队列有 11 个。图 2(b)汇总结果。在 106 个任务的主队列中,刷新使成功率在干净观察下变化 −3.77 个百分点(95% CI [−9.43, 0.94]),在过时观察下变化 +6.60 个百分点(95% CI [−2.83, 16.04])。差值是 10.38 个百分点(95% CI [0.00, 20.75])。在 100 个任务的独立队列中,对应效应是 0.00 和 +4.00 个百分点。差值是 4.00 个百分点(95% CI [−5.00, 14.00])。因此,在两个完整队列里,包括事实轨迹失败的任务,过时观察下的估计效应都更有利。

配对计数显示这些平均数藏了什么。在完整主队列中,干净观察下刷新产生 2 次挽救和 6 次伤害;过时观察下是 17 次挽救和 10 次伤害。在事实成功队列的延迟 1,过时观察下的正平均由 15 次挽救和 4 次伤害组成。干净观察下,刷新把 6 次成功变成失败。附录 B 给出完整分解。

合在一起,这些结果表明:恢复价值不是刷新操作的固定属性。它取决于智能体当时能用的信息、出错后到达的状态,以及尝试恢复的时间。这解释了为什么一条无条件的规则,会把有用的干预和不必要的干预藏在同一个平均成功率后面。

5.3 刷新为什么有帮助?

图 3:机制对照。干净观察、延迟 0(a);两步过时观察、延迟 4(b)。点是相对于不恢复的效应。误差线是任务级聚类自助 95% 置信区间。

接下来我们问,刷新的哪一部分产生增益。完整刷新查询环境,并把返回的观察展示给智能体。第二种变体称为内容消融刷新(content-ablated refresh):做同样的查询,但藏起返回的内容。第三种变体要求智能体在不查询环境的情况下重规划。在干净观察、延迟 0 时,这些操作使成功率分别变化 −8.96、−5.97 和 −14.93 个百分点(图 3)。在两步过时观察、延迟 4 时,变化分别是 +13.43 个百分点(95% CI [4.48, 22.39])、+10.45 个百分点(95% CI [1.49, 20.90])和 +1.49 个百分点(95% CI [−8.96, 11.98])。完整刷新挽救 10 个任务。内容消融刷新也挽救了其中 8 个。因此,对这些共同挽救而言,返回的观察并不是必需的。附录 A 给出任务级比较。

这一点重要,因为刷新常常被当成「提供更好的观察内容」。对照表明刷新有两个不同部分:它查询环境,然后把返回内容展示给智能体。对大多数共同挽救,返回内容并非必要。如果只评测完整操作,就会错过这一区分。

5.4 CIR 学会何时恢复

我们在全部 75 个留出的前缀可行任务上评测 CIR,不论其事实轨迹是否成功。在 300 个回合中,从不刷新的成功率为 70.33%,CIR 达到 73.33%。增益为 3.00 个百分点(95% CI [0.67, 5.67]),其中 11 次挽救、2 次伤害。

图 4:75 个留出的前缀可行任务上的有选择恢复。每个任务在四种观察条件下评测,共 300 个回合。点是相对于从不刷新的效应。误差线是任务级聚类自助 95% 置信区间。CIR 在 16.3% 的回合中干预。

观察条件从不刷新CIR效应(pp,95% CI)挽救 / 伤害
干净81.33%81.33%0.00 [0.00, 0.00]0 / 0
一步过时68.00%69.33%+1.33 [0.00, 4.00]1 / 0
两步过时60.00%69.33%+9.33 [1.33, 17.33]9 / 2
缺失72.00%73.33%+1.33 [0.00, 4.00]1 / 0

表 1:CIR 在全部 75 个留出的前缀可行任务上、按观察条件的测试表现。

效应随观察条件变化(图 4 与表 1)。观察干净时 CIR 从不干预,因此成功率不变。最大增益出现在观察过时两步时。成功率从 60.00% 升到 69.33%,提高 9.33 个百分点(95% CI [1.33, 17.33]),来自 9 次挽救和 2 次伤害。一步过时和缺失观察的增益各为 1.33 个百分点。CIR 在 75 个两步过时回合中的 31 个里干预,在 75 个缺失观察回合中只干预 1 个。它把恢复集中在观察到的收益最大的地方。

CIR 在 16.3% 的回合中干预。序贯异常基线在 12.7% 的回合中干预,把成功率提高 1.67 个百分点(95% CI [0.33, 3.33]),6 次挽救、1 次伤害。干预率对齐的异常基线在 15.7% 的回合中干预,提高 2.00 个百分点(95% CI [0.67, 3.67]),6 次挽救、0 次伤害。CIR 的点估计最高。它相对两个异常基线的差距分别是 1.33 个百分点(95% CI [−0.33, 3.33])和 1.00 个百分点(95% CI [−0.67, 2.67])。相对从不刷新的 3.00 个百分点增益,得到任务级符号翻转检验的支持(p = 0.034)。

干预率对齐的比较,帮助把「有选择的恢复」和「只是干预得更频繁」分开。CIR 和干预率对齐的异常策略刷新的回合比例相近。CIR 产生 11 次而不是 6 次挽救,并达到所比较策略中最高的观察成功率。这一模式与 CIR 的设计一致:策略考虑的是干预的预测结局,而不只是当前观察是否显得异常。

CIR 没有在 75 个干净回合中的任何一个上触发,因此在整个被评测的干净队列里保持了从不刷新的成功率。

#### 讨论

恢复应当被评测为一项决策,而不只是一种操作。配对续跑揭示恢复挽救或伤害了哪些轨迹,以及它的价值如何随状态和时机变化。它们提供的信息多于「恢复之后的成功率」。它们也说明为什么异常检测不够:观察异常并不意味着刷新会有帮助。CIR 在行动之前,预测刷新和继续执行两种结局。因此 harness 可以先估计恢复价值,只在期望价值为正时才干预。

6 结论

只看平均成功,会藏起恢复如何改变单条轨迹。我们的配对评测表明,刷新的价值取决于观察、时机和轨迹。它也把恢复挽救的任务和它伤害的任务分开。受控的刷新变体表明,新返回的观察不是收益的唯一来源。CIR 把这些证据变成一个可执行的决策。它不重新训练底层智能体,在来自 75 个留出任务的 300 个回合上把成功率提高 3.00 个百分点。最大增益出现在观察更严重过时的时候,并且在所比较的策略中达到最高的观察成功率。这些结果说明,配对的因果证据如何支持在大语言模型智能体的 harness 里做更有选择的恢复。

人工智能使用声明

在这项工作中,生成式人工智能工具只用于语言润色,包括改进文稿的语法、清晰度和流畅度。我们没有用生成式人工智能工具产生研究想法、发展方法、设计实验、分析结果或得出科学结论;其他披露类别不适用于本工作。我们审阅了全部人工智能辅助的修改,并核实它们没有改变技术内容或科学主张。我们对本工作的最终内容负全部责任,包括全部文字、主张和产物。

伦理声明

全部实验在受控基准环境中进行,不涉及人类受试者或私人用户数据。除大语言模型智能体研究通常伴随的风险外,我们没有识别出额外的伦理风险。

参考文献

下列条目保留原文题名。

  • Barke 等(2026). AgentRx: diagnosing ai agent failures from execution trajectories. arXiv:2602.02475.
  • Bonagiri 等(2026). CausalFlow: causal attribution and counterfactual repair for LLM agent failures. arXiv:2605.25338.
  • Cemri 等(2025). Why do multi-agent LLM systems fail? Advances in Neural Information Processing Systems, Vol. 38.
  • Chen 等(2026). From failed trajectories to reliable LLM agents: diagnosing and repairing harness flaws.
  • Efron(1979). Bootstrap methods: another look at the jackknife. The Annals of Statistics 7(1), pp. 1–26.
  • Gou 等(2024). CRITIC: large language models can self-correct with tool-interactive critiquing.
  • Holland(1986). Statistics and causal inference. Journal of the American Statistical Association 81(396), pp. 945–960.
  • Huang 等(2024). Large language models cannot self-correct reasoning yet.
  • Kitagawa 与 Tetenov(2018). Who should be treated? empirical welfare maximization methods for treatment choice. Econometrica 86(2), pp. 591–616.
  • Künzel 等(2019). Metalearners for estimating heterogeneous treatment effects using machine learning.
  • Li 等(2026). ReSeek: a self-correcting framework for search agents with instructive rewards.
  • Ma 等(2024). AgentBoard: an analytical evaluation board of multi-turn LLM agents.
  • Ma 等(2025). DoVer: intervention-driven auto debugging for LLM multi-agent systems.
  • Ma 等(2026). LongHorizon-harness: advancing long-horizon agents for real-world tasks.
  • Madaan 等(2023). Self-Refine: iterative refinement with self-feedback.
  • Packer 等(2023). MemGPT: towards LLMs as operating systems.
  • Rubin(1974). Estimating causal effects of treatments in randomized and nonrandomized studies. Journal of Educational Psychology 66(5), pp. 688–701.
  • Shah(2026). Causal Agent Replay: counterfactual attribution for LLM-agent failures.
  • Shinn 等(2023). Reflexion: language agents with verbal reinforcement learning.
  • Shridhar 等(2021). ALFWorld: aligning text and embodied environments for interactive learning.
  • Tian 与 Pearl(2000). Probabilities of causation: bounds and identification. Annals of Mathematics and Artificial Intelligence 28, pp. 287–313.
  • Wu 等(2024a). AutoGen: enabling next-gen LLM applications via multi-agent conversations.
  • Wu 等(2024b). StateFlow: enhancing LLM task-solving through state-driven workflows.
  • Xiao 等(2026). When errors become memories: causal pathway tracing in multi-turn memory-augmented llms.
  • Yang 等(2025). Qwen3 technical report.
  • Yang 等(2024). SWE-agent: agent-computer interfaces enable automated software engineering.
  • Yao 等(2023). ReAct: synergizing reasoning and acting in language models.
  • Yao 等(2026). Harness-bench: measuring harness effects across models in realistic agent workflows.
  • Zhang 等(2025). Which agent causes task failures and when? on automated failure attribution of LLM multi-agent systems.
  • Zhao 等(2026). CatchBench: when can an agent failure be caught? arXiv:2608.22808.
  • Zhou 等(2024). Language agent tree search unifies reasoning, acting, and planning in language models.

附录 A 恢复操作之间的任务级重叠

我们分析两步过时观察、延迟 d = 4 时,完整刷新与内容消融刷新的联合结局。两种结局都相对于同一次不恢复结局来分类。机制对照记录包含 74 个任务,67 个满足协议检查。其中两个任务在预定恢复之前就已经成功结束,因此两种刷新都没有执行。它们仍留在第 5.3 节的 67 任务汇总分析里,但被排除在「已执行干预」的联合分析之外。图 5 展示任务级联合结局。表 2 报告配对效应。其余 65 个任务在两条分支中、恢复之前具有相同的任务身份和完全相同的词元前缀。没有记录到环境重放不匹配。

图 5:两步过时观察、延迟 d = 4 时的联合恢复结局。行是完整刷新,列是内容消融刷新,各自相对于同一次不恢复结局分类。分析包含 65 个执行前缀匹配的任务,排除两个在恢复前已成功结束的任务。8 次挽救是共同的,2 次只出现在完整刷新下,1 次只出现在内容消融刷新下。

结局类别在 65 个任务中的 59 个上一致。其中包括 8 次共同挽救、38 次稳定成功和 13 次稳定失败。6 处不一致包括:2 次仅完整刷新的挽救,1 次仅内容消融的挽救,2 次被完整刷新避免的伤害,以及 1 次相对内容消融刷新、由完整刷新引入的伤害。因此,总体的高一致里包含 51 个两种操作都不改变结局的任务。8 次共同挽救表明,对这些观察到的收益,返回的内容不是必需的。

表 2:两种恢复操作都能执行的 65 个任务上的配对成功效应。区间使用 10,000 次任务级聚类自助重抽样。数值单位均为百分点。

配对比较效应(pp)95% CI
完整刷新 − 不恢复+13.85[4.62, 23.08]
内容消融刷新 − 不恢复+10.77[1.54, 20.00]
完整刷新 − 内容消融刷新+3.08[−4.62, 10.77]

配对净增益是:完整刷新相对不恢复为 9 个任务,内容消融刷新相对不恢复为 7 个任务,完整刷新相对内容消融刷新为 2 个任务。去掉两个已经结束的任务,分母从 67 变为 65,但这些增益不变。这解释了与第 5.3 节汇总效应的差别。两种刷新变体相对不恢复都产生正增益。完整刷新相对内容消融刷新的点估计为 3.08 个百分点。

附录 B 额外的恢复结果

图 6 给出 93 个任务的事实成功队列、在恢复延迟 d = 1 时的完整配对结局分解。过时观察下,刷新产生 15 次挽救和 4 次伤害,另有 59 次稳定成功和 15 次稳定失败。干净观察下,87 条轨迹保持成功,6 条受到伤害。这一分解说明:过时状态下的正平均,来自总成功率单独看不到的轨迹级变化。

图 6:93 个任务的事实成功队列中,恢复延迟 d = 1 的配对结局。每根柱把轨迹分成稳定成功、挽救、伤害和稳定失败。

Shuyao Xiao 等,When Harnesses Lose the Signal: Causal Evaluation of Recovery in LLM Agents,2026-09-30,https://arxiv.org/abs/2610.00372 ,CC BY 4.0

Found it useful? Pass it on

WeChat

Scan with WeChat to open it on your phone and forward it.

Subscribe via RSS

Submit a correction