LLM 智能体已能执行需要规划、工具调用、状态更新与外部环境迭代交互的多步任务。随着其从演示走向生产,可靠性成为核心障碍:在真实域上单次运行成功率仍然有限;即使看似成功的运行,也可能潜藏过程级风险——缺失步骤、顺序错误、违反工具协议、未授权的状态变更或多余动作。这类缺陷会被粗粒度的结果式评估漏掉,却带来真实的运营与合规成本(已部署的聊天机器人曾错误陈述退款规则、建议法律上无效的操作即为例证)。因此,提升可靠性必须超越对最终结果的度量与盲目重试,转向主动恢复出错的运行。
我们将这一纠正过程称为智能体修复:在运行失败后或执行过程中诊断并纠正有缺陷的智能体运行,且不修改底层模型或环境。与作用于固定代码制品并依赖测试预言机(oracle)的自动程序修复、LLM 自调试不同,智能体修复面向动态、有状态、非确定性的轨迹:失败可能没有预言机、根因远在上游、并以难以撤销的方式改变外部状态。这些差异使智能体修复远不止"生成补丁",也使人类专家运维者的修复回路成为自然参照。
图 1 给出一个典型的"修复鸿沟"示例(Banking 任务):先向客户的 Green 账户存入 25 美元支票、再关闭该账户。deposit_check 因智能体漏掉 check_amount 参数而失败,存款始终未入账,close_account 随之不可行。原始运行在畸形调用上反复循环(列 a);智能体自修复则误诊为账户信息问题——调用 get_account 查到余额为零、毫无线索后原样重试(列 b);而人类运维者回忆先前的循环、诊断出缺失参数、注入修正引导(补上 check_amount;确认入账后才可关户),并监督执行直至存款入账、账户关闭(列 c)。诊断、行为控制与有状态推理共同构成完整的修复回路——这正是当前智能体自修复方法普遍缺失的环节。
check_amount 导致存款失败,重复调用形成循环,close_account 无法执行;(b) 自修复:两次反思均误诊("账号错了?"→"换个说法重试"),重复畸形调用;(c) 人工修复:回忆先前循环 → 诊断缺失参数与错误顺序 → 注入修正引导 → 监督"确认入账后再关户",任务成功。A=动作(工具调用),O=观测(执行反馈)。既有方法只复现了这一回路的一部分:盲重试不提供诊断;结果反馈只报告运行是否失败,而非何处、为何失败;自反思在没有外部证据时常常含糊或自我确证;过程级分析则通常止步于检测,未能闭合"诊断 → 运行时修复"的回路。结果是同类失败在运行时反复出现:智能体重复同一错误、修好一处却在另一处回归、执行中途漂移、或问题解决后过度纠正。作者进一步指出,这一短板是本质性的而非偶然的:即使失败被相当准确地定位,实际被修复的运行也只有一小部分(PROBE 的经验)——诊断本身并不驱动修复。一项诊断要真正驱动修复,须满足两个条件:其一,精确定位出错的那个具体决策,而不仅仅是失败类别;其二,在智能体重执行期间持续有效,而非被咨询一次即遭遗忘。
自动满足这两个要求引出三个挑战:
C1:从相关轨迹做因果定位。轨迹暴露的是行为相关性而非根因步骤本身。一个早期错误参数或被遗漏的信号可经长程、多对多的依赖传播到许多后续步骤。因此根因分析是一个时间—结构归因问题,而非对轨迹的平面阅读。
C2:有状态的行为域引导。"知道为何失败"与"让下一次运行为正确"之间存在鸿沟。诊断可能宽泛到无法执行、具体到无法泛化、或在进入长工具调用轨迹后被遗忘;且一次重试可能修好原错误却在另一约束上回归——修复需要跨迭代记住已修复与未解决的事项。
C3:干预而不过度控制。即使引导正确,重执行中也会随智能体漂移、重复旧动作或过早执行状态变更动作而衰减;但干预过频本身会扰乱任务、阻断合理探索、或使智能体在问题已解决后过度纠正。挑战在于决定何时干预、干预多强、何时停止。
AgentTether 通过三个协同组件自动化人类修复回路。(i)针对 C1:图引导根因分析(RCA)。以图表示保留决策、工具调用与环境反馈之间的时间顺序与非局部依赖:构成关键转移图(CTG),每个转换单元(TU)——一个"决策—执行—反馈"循环——是一个节点,单元间的信息流依赖是边。这使归因在行为决策层面进行,沿依赖路径回溯失败,而非止步于时间上相邻的步骤。在 CTG 之上,离线 HGT 检测器与实时检测器定位异常结构,再由分析师 LLM 给出根因、转折点与恢复提示——无需任何失败标注。(ii)针对 C2:有状态修复引导,将行为控制与有状态推理配对。反馈构建器把诊断与结果失败证据转化为行为域引导(纠正指令 + 注入计划);跨迭代修复记忆记录已修复与未解决事项,使后续迭代既保留有效修复、又防止回归。(iii)针对 C3:守护式运行时干预——行为控制的在线一侧。守护器在工具返回与文本响应边界检查行为(循环重复、期望偏差、意图漂移、结构检查),通过"附加到工具结果"或"插入合成用户消息"注入纠正,并以证据接地、冷却期与最小干预防护避免过度控制。
实验在 τ-bench 上进行——它检查长而有状态的工具使用运行中的过程级正确性,适合超越"最终回复是否貌似合理"的端到端修复评估。覆盖三个域(Retail、Airline、Banking)共 261 个任务,主智能体为 Qwen3.7-max,并在 Banking 上以 GPT-5.4 交叉验证。本文贡献:
(1)统一的智能体修复框架:将诊断、行为控制与有状态 reasoning 合入单一自动化流水线,既可作运行后诊断与引导工具使用,也可叠加在线干预;
(2)图引导诊断:基于 CTG 的图引导 RCA,融合离线正常行为模型与实时图检测器定位失败关键子轨迹,沿依赖路径而非线性邻接归因,无需失败标注;
(3)有状态且守护的运行时干预:将诊断转化为简洁的行为域引导,以修复记忆防回归,并通过守护式干预 harness 监督重执行——注入纠正的同时抑制不必要或高风险的干预;
(4)跨域跨模型评估:对比盲重试、结果反馈与 Reflexion,AgentTether 修复 69.11% 的 Qwen3.7-max 初始失败任务,整体较盲重试提升 26.02 个百分点(Banking 上 32.53 个百分点);GPT-5.4 的 Banking 研究呈同样趋势;守护式运行时干预在合规衰减严重的 Qwen3.7-max Banking 上再增 12.05 个百分点。系统以可安装包形式发布。
批注①(与读者项目的关系):本文与我们的工作同在 τ-bench 上评测,但问题正交——AgentTether 修的是"已失败轨迹的事后恢复"(诊断 → 引导重试 → 运行时守护),其前提是任务目标本身固定不变;它不做目标漂移的量化,也不设污染传播的防线(其 Repair Memory 只记录"哪些纠正已生效/未解决",不追踪目标保真度或上游污染向下游的流动)。因此在我们论文的 Related Work 中,本文应划入"失败恢复 / 智能体修复"一线(与 PROBE、Reflexion、failure attribution 同组),划界点写明:AgentTether 依赖失败信号触发、以重试循环实现恢复;我们则在线度量目标保真度并阻断漂移与污染传播,无需等到任务失败。
为理解为何诊断一个失败运行并不足以修复它,作者分析了 τ-bench 上的初始失败运行,得到两个问题,分别对应 AgentTether 的两个核心组件:诊断必须指明运行在哪里出错,且必须在重跑展开过程中持续有效。
作者用 τ-bench 的金标动作检查,对 Qwen3.7-max 下全部 83 个初始失败 Banking 运行按根因分类,定位每个运行中最早被违反的必需步骤。失败压倒性地是行为性的:78/83(94%)源于错误或缺失的工具动作——54 个(65%)为参数错误或流程错误、24 个(29%)为缺失必需动作——仅 5 个(6%)是纯沟通错误。把整条轨迹直接交给 LLM 指认根因的朴素基线,因两个结构性原因而不可靠,且任何简单的位置或频次启发式都无法修复:
(i)根因远在症状上游,故"近因"失效。失败信号(reward=0)只在末尾浮现,而责任步骤远在其前。对 78 个行为性失败(5 个纯沟通失败不违反任何必需步骤),从最早被违反的金标动作到最终失败的距离:中位数 4 个必需步骤、最大 26;62/78(79%)严格上游(图 2b:距离 0 者 16 个、1 者 8 个、2–3 者 13 个、4–5 者 12 个、≥6 者 29 个)。平面阅读(如近因启发式)锚定在最后或最显著的错误上——那只是与失败相关之物;真正的原因远在上游,仅凭位置无法挑出。
(ii)效应多对多,故"频次"失效。单个错误决策会传播:一个根错误平均 followed by 3.2 个后续被违反的检查,78 个失败中 76% 违反多个检查。标记"错误最密集区域"的启发式无法把发源步骤与 merely 继承其效应的众多下游步骤区分开。定位根因需要的不止阅读或计数轨迹,而是知道每个后续决策消费了哪个更早步骤的输出——即执行的信息流与依赖边。将其建模为图,归因便可沿因果路径走向发源步骤,而非平面轨迹暴露的线性邻接。
精确诊断以一次性消息的形式在重跑开始时注入,却必须在与任务指令、工具输出、领域策略共存、常超过 20 个工具调用步的执行中存活。作者在"仅事后诊断"设定(AgentTether(仅事后),第 ≥1 次迭代、三域合计)的 173 次注入后重跑上度量反馈遵从度:从每份注入报告中解析其施加的具体指令(禁止调用的工具/动作、标记为缺失的必需动作、被禁止的行为如基于 shell 的策略查询),按序走查重跑的工具调用——若截至第 k 步未违反任何指令则该运行在第 k 步"遵从",一旦违反即计为此后所有步"失守",得到首违生存曲线(图 3)。遵从率注入之初为 99%,但除只需少量工具调用的短 Retail 任务外普遍侵蚀:第 5 步降至 71%,整体第 13 步跌破 50%;最长、约束最密的 Banking 早在第 8 步即跌破。换言之,智能体起初遵守正确的诊断,随后漂回旧行为、重复无效工具调用、或在修复已就位后过度执行。由于这类偏离只在反馈滚出有效注意力窗口后才浮现,仅改进事后报告无法预防它们。
由此得到两大发现(Finding 1 / Finding 2):根因定位应在建模信息流依赖的轨迹图上进行,而非交给 LLM 阅读平面轨迹或最终结果;一次性诊断不够——引导应贯穿整个重跑、随执行展开而施加,在偏离发生时捕获、在修复完成后停止。这两个问题(缺乏依赖感知的定位、正确诊断的运行时衰减)正是 AgentTether 两大机制——图引导诊断与守护式中途干预——的动机。
如图 4,AgentTether 以两条修复轨道包裹单个未修改的智能体运行,且只通过"已完成的轨迹"与"随后的执行"与智能体交互。每次运行表示为有序的转换单元序列,每个 TU 捕获一个"观测—信念—动作—反馈"循环。初始运行只被观察;仅当其失败时才进入修复循环。迭代之间:事后(观察与诊断)轨道把完整轨迹提升为关键转移图,用离线 HGT 检测器与实时检测器定位异常子结构,再由分析师 LLM 转成诊断与修复引导,在下一轮开始时注入;可选地,运行时(监督与干预)轨道在工具返回与文本响应钩子处监督重执行,按 Check→Decide→Inject 流水线在智能体漂移时施加守护式纠正。完成的运行又成为下一轮事后诊断的轨迹,闭合回路。循环在任务被解决或 $\Gamma$ 次修复迭代耗尽时停止;跨迭代修复记忆跨尝试携带"已修复/未解决"状态,使引导累积而非清零。
轨迹采集(不改智能体)。诊断需要运行的完整行为轨迹。受分布式追踪启发,AgentTether 通过对已知 LLM-SDK 入口(如 chat.completions.create、messages.create)打猴补丁、挂载透明的前后钩子来采集轨迹。每个被拦截事件(LLM 推理、工具调用或环境响应)连同完整请求/响应载荷与会话上下文,按执行顺序追加到运行轨迹。会话结束时移除补丁,智能体的源码与行为保持不变。
转换单元(TU)。AgentTether 把轨迹抽象为 TU,在决策而非原始事件的粒度上推理,将运行建模为有序序列:
每个 $\mathrm{TU}_k$ 捆绑一个"决策—执行—反馈"循环:观测 $o_k$(智能体所条件化的上下文)、信念 $b_k$(其自然语言推理)、动作 $a_k$(工具调用 $\langle$名称, 参数$\rangle$ 或 LLM 回复)、反馈 $f_k$(执行结果与环境输出)。每个 TU 还携带概括自身结果与角色的派生属性:执行状态与错误签名、所调用工具及推断意图、产出的工件(如某个标识符或检索到的记录)。除这些标量属性外,每个 TU 还链接周围的运行时遥测数据(span、指标、日志、验证记录),由离线检测器表示为带类型的上下文节点,使诊断扎根于智能体自身消息之外的信号。TU 粒度把原始事件流压缩为 $O(n)$ 个行为步骤,并给每个步骤一个稳定身份——诊断中的证据与运行时的纠正都挂载其上。
给定失败运行的完整 TU 序列,事后轨道回答"哪个决策导致了失败、为什么"这一时间—结构归因问题,分三步:构建轨迹图、在图上定位异常子结构、将其分析为修复引导。
为建模运行内的因果关系,构建 $G=(V,E)$:节点 $V=\{\mathrm{TU}_1,\dots,\mathrm{TU}_n\}$ 对应执行轨迹中的转换单元;时间边 $\mathrm{TU}_k\rightarrow\mathrm{TU}_{k+1}$ 连接相邻单元、编码执行顺序;依赖边 $\{\mathrm{TU}_k,\mathrm{TU}_l\}$ 连接共享底层状态(如同一工件或同一错误签名)的单元,支持超越时间邻接的非局部归因。沿依赖边回溯,图引导 RCA 得以沿依赖路径追踪失败,而非依赖时间相邻性。
为在 CTG 上定位失败关键区域,两个互补检测器对轨迹 $T$ 打分——一个学得的正常行为先验 + 一个免训练的局部检测器:
离线检测器(学得的正常执行先验)。作用于 CTG 的遥测增广视图——每个 TU 周围挂接带类型上下文节点——在这些 TU 中心的邻域上推理并为每个 TU 打分。训练数据为外部的仅成功语料:21,143 条已解决轨迹,主体为 TerminalBench(11,079)与 SWE-smith(10,010),外加少量运营智能体轨迹;不含 τ-bench 各域与历史运行。由于任务语义与 τ-bench 不同,作者将其映射到一个面向行为的遥测模式,保留可迁移的执行结构(TU 顺序、工具调用/返回角色、状态/结果证据、工件链接、时间/依赖边),并归一化框架特定的日志与载荷布局——由此学到的是遥测结构上的正常执行先验,而非特定工具策略。在此语料上训练异质图变换器(HGT)骨干 $H$:自监督、无任何失败或基准标注,通过两类任务学习正常 TU 上下文——重建遥测边、从周围图恢复被掩码的类别字段(工具、状态、角色、阶段、结果)。推断时,每个 $\mathrm{TU}_k$ 的边重建意外度与掩码属性意外度取平均,构成子图意外度分数 $s_H(\mathrm{TU}_k)$,度量其局部上下文偏离正常模型的程度。AgentTether 按 $s_H$ 对 TU 排序,以该运行自身分布中的最大分数落差截断异常前沿,并把执行顺序上连续的前沿 TU 聚为前沿组——这些组投影回 CTG,成为紧凑、TU 对齐的异常子轨迹。
实时检测器(运行局部证据)。以孤立森林(Isolation Forest)实例化这一轻量运行局部检测器:无需预训练、直接作用于单条 CTG 抽取的定长 TU 特征、返回排序异常分而非二值判定。给定 CTG,检测器把每个 TU 映射为定长 25 维图上下文特征向量 $\varphi(\mathrm{TU}_k)\in\mathbb{R}^{25}$,得到运行局部异常分 $s_O(\mathrm{TU}_k)$。特征覆盖三族:结构(如入/出度)、属性级(如状态—反馈不一致)、宏级(macro = 共享子目标或工具族的连续 TU 块,如每宏错误率)。高分 TU 沿 CTG 连通性扩展为局部化前沿。
两路输出作为相互独立的证据平面保留:离线 HGT 检测器捕捉"偏离成功遥测结构"之处,实时检测器捕捉"当前 CTG 内的离群"之处;二者取并集构成异常子结构 $S$。
异常子结构 $S$ 只定位可疑区域,仍可能含冗余检测证据与相邻的常规步骤。AgentTether 先把 $S$ 剪枝为紧凑证据包:对每个可疑区域,保留峰值 TU 作为候选转折点(即运行首次离开可恢复路径的那个转移——即使失败后来才浮现)、支持该候选的检测信号、以及最小局部 CTG 上下文(相邻或依赖链接的 TU),丢弃低分连接件与常规动作。分析师 LLM 基于证据包与结果失败证据,沿依赖边向后推理,返回含三个字段的诊断:根因、确认的转折点 $\mathrm{TU}_{t^\star}$、以及让下一轮回到正确路径的恢复提示。
诊断是回顾性的,不指明如何操纵下一轮。反馈构建器将其转化为引导——插入智能体上下文的简短自然语言指令,由两部分配对:描述 $\mathrm{TU}_{t^\star}$ 附近行为应如何改变的纠正指令,与规定引导在下一迭代何处进入的注入计划。三个设计选择塑造引导:其一,披露控制——指令保持一般化而非实例特定:指明失败的动作族与约束类(如"使用符合储蓄资格的源账户"),但不硬编码精确参数值,使下一轮跟随失败模式而非固定答案;其二,显著性——引导置于下一轮上下文的开头,让纠正尽早被看到;其三,简洁性——合并重叠的恢复提示,保留与 $\mathrm{TU}_{t^\star}$ 最相关的指令。
超出单次迭代,引导经由修复记忆 $M$ 变为有状态:生成新引导前,AgentTether 先读 $M$ 恢复"哪些指令已修复、哪些仍未解决";下一轮结束后写回更新状态。这把一次性的事后反馈变成一条修复轨迹——对顽固问题持续加压,同时避免在已成功的修复上回归。
批注②(技术亲缘):其"关键转移图定位失败子轨迹"与我们的"传播链归因"同属一个技术家族——都把轨迹从线性序列提升为依赖图,沿信息流边回溯,回答"错误在哪一跳产生、经哪些跳传播、在哪一跳被观测/应被阻断"。AgentTether 用它定位转折点(首个离开可恢复路径的 TU);我们可用同一图抽象回答"漂移在哪一跳注入、在哪一跳仍可被隔离"。可直接借鉴的两点:(a) TU 四元组(观测—信念—动作—反馈)给每一跳一个稳定挂载点,证据与纠正都可寻址;(b) "依赖边 = 共享工件或错误签名"的轻量建边规则无需语义模型即可构图,适合我们的隔离防线做在线判定。
运行时轨道实现为智能体执行外围的轻量干预 harness,不修改智能体内部策略。为使重执行与"活动意图"(原始任务目标 + 事后修复引导)保持对齐,harness 监视智能体行为,仅在当前轨迹开始漂移时干预。守护器在两个钩子上遵循 Check→Decide→Inject 流水线:工具返回时(工具执行后、结果传回智能体前)与文本响应时(智能体生成文本后、响应被接受前)。前者在观测到工具结果后操纵下一决策,后者拦截过早或失配的文本延续。
循环检测标记对同一工具以相同参数的重复调用。意图漂移嵌入活动意图与当前动作并打语义不相似度分,按风险分层设阈:破坏性动作最敏感(阈值 0.35)、信息收集最宽松(0.55)、默认 0.50,高风险漂移候选须经 LLM 验证器确认;工具返回检查点上对近期分数做指数滑动平均(5 步,$\alpha=0.3$),防止单次探索性步骤触发干预。期望偏差检查引导或修复记忆中的期望纠正动作是否已被满足(依据观测到的工具名与选定参数);若智能体尝试意外的破坏性操作,harness 发出警告,点名被违反的动作族或约束、但不暴露精确的期望参数值。结构检查处理延迟或被遗忘的引导:在足够进展之后、或提交类操作之前,检查期望纠正动作是否仍未满足;若是,从活动引导中抽取最相关的纠正提示,发出稀疏的检查点提醒。
并非对每个候选偏离都行动。证据接地:每次干预必须由明确的 Check 信号与活动引导/修复记忆共同支撑,优先直接证据(循环、意外破坏性动作、经 LLM 验证的意图漂移)。冷却期:强制干预间隔、限制文本响应上的重路由次数、对结构提醒去重,避免重复发出同一纠正。最小干预:选择扰动最小的响应——一旦全部期望纠正动作完成即停止干预;在期望的状态变更动作之后,抑制所有非循环干预、只干预打断重复调用。
通过守卫的候选经两条通道之一送达纠正(纠正文本由活动引导与验证器解释生成)。工具返回时:把纠正附加到工具结果再传回,使干预与下一决策同带(in-band)、较轻;文本响应时:插入一条合成用户消息并把控制权交回智能体——更强的通道,保留给否则会漂移或过早结束运行的文本。注入文本只澄清修复方向,不提供完整答案。注入后智能体继续执行、产生后续 TU。
批注③(设计家族定位):AgentTether 的守护式干预(Check→Decide→Inject + 证据接地/冷却期/最小干预)与 LivePlan 的 Monitor–Advisor 干预处理、压力隔离(pressure isolation)、确定性 Executive 同属"确定性组件持有判定权"设计家族:LLM 负责生成,确定性组件持有"是否偏离、是否干预"的判定权。但 AgentTether 的判定并非完全确定——高风险漂移仍靠 LLM 验证器确认;且其受损案例(hurt)恰暴露了半确定性判定的代价:帮助案例平均 11.3 次干预/任务 vs 受损案例 29.3 次/任务,同一守卫围绕必需动作反复触发会让智能体改道重规划而非 committing 到正确操作。这为我们的立场——判定权必须完全交给确定性组件——提供了反面佐证与阈值设计参照。
同一设计支持两种部署。离线诊断与引导工具:仅启用事后轨道,对已完成(失败)运行做图引导诊断、生成注入下一轮的引导与修复记忆,适合作为包裹既有智能体部署的运行后分析与修复建议层,额外开销最小。在线修复层:叠加运行时守护干预,在重执行中保持纠正有效,换取更高修复率与更少智能体轮次,代价是辅助验证与干预带来的额外时延(见第 4 节 RQ1 的时长分析:仅事后 13.47 分钟 vs 完整 15.59 分钟)。两种模式都不触碰底层智能体与环境。
基准。τ-bench:工具—智能体—用户交互基准,含可验证的数据库状态变更、沟通要求与自然语言断言。三个复杂度递增的域:Retail(电商订单管理,114 任务)、Airline(航班预订操作,50 任务)、Banking(严格合规的金融交易,97 任务),合计 261 任务。
模型。被修复的主智能体为 Qwen3.7-max(经阿里云百炼/DashScope,全域评估成本可行的当代强 Qwen 工具模型);另在 Banking 上以 GPT-5.4(OpenAI API)检验跨模型迁移。为避免同模型自评,所有非智能体辅助角色——τ-bench 用户模拟器/评估器与 AgentTether 的分析师/验证器——统一使用另一模型家族的 DeepSeek-V4-Pro(长上下文、支持工具调用),且各方法间固定不变。检索嵌入遵循 τ-bench AllTools 设置,使用 text-embedding-3-large。
修复协议与对比方法。所有方法共享同一初始执行,实验只作用于初始失败的任务,初始运行后最多 $\Gamma=3$ 次修复迭代,确保评估聚焦真正需要修复的任务:
· 盲重试(Blind retry):不含任何 AgentTether 组件,最多重跑三次、迭代间无反馈;
· 结果反馈(Outcome feedback)(SelfDebug 范式):移除图引导诊断,下一迭代只拿到评估器对上次失败的结果级评价;
· Reflexion:以智能体自我反思取代外部诊断,从失败轨迹生成言语反馈;
· AgentTether(仅事后):仅事后轨道,每次重试注入图引导诊断与修复引导(含修复记忆),关闭运行时干预;
· AgentTether(完整):在仅事后之上叠加守护式运行时干预。
超参数。全部跨域跨模型固定、不按基准调优:HGT 正常执行模型隐藏维 52、训练 20 轮、批大小 128;孤立森林 100 棵树、最大子采样 256、一跳图上下文特征、种子 42;意图漂移阈值 0.35(破坏性)/0.50(默认)/0.55(信息收集)、5 步 EMA 平滑($\alpha=0.3$);结构检查的检查点提醒要求至少 5 个先前步骤与 5 次工具调用、允许一次重复提醒、每运行最多触发 3 次。辅助 LLM 调用在支持处使用低方差解码设置。
指标与统计。主指标为任务级二值成功率;另报告动作级纠正率(初始运行中错误的必需工具动作/参数在修复迭代中被纠正还是回归)。效率指标:平均交互步数、墙钟时长、每任务端到端方法 token(含智能体每次生成的输入+输出,及 AgentTether 分析师/验证器调用;不含各方法固定相同的基准用户模拟器/评估器调用)。因每个任务在所有方法下评估,配对二值结果用 McNemar 精确检验。
| 域 | 方法 | 修复数 | 修复率 (%) | ΔRetry (pp) | 平均轮次 | 平均时长 (min) | 端到端 Token (K) |
|---|---|---|---|---|---|---|---|
| Retail (n=26) | 盲重试 | 23/26 | 88.46 | 0.00 | 31.50 | 5.55 | 102 |
| 结果反馈 | 22/26 | 84.62 | −3.85 | 25.92 | 4.75 | 83 | |
| Reflexion | 23/26 | 88.46 | +0.00 | 24.50 | 4.60 | 79 | |
| AgentTether(仅事后) | 24/26 | 92.31 | +3.85 | 20.50 | 4.18 | 68 | |
| AgentTether(完整) | 25/26 | 96.15 | +7.69 | 18.08 | 4.09 | 59 | |
| Airline (n=14) | 盲重试 | 8/14 | 57.14 | 0.00 | 32.93 | 6.39 | 114 |
| 结果反馈 | 9/14 | 64.29 | +7.14 | 28.86 | 5.60 | 101 | |
| Reflexion | 10/14 | 71.43 | +14.29 | 28.64 | 6.17 | 100 | |
| AgentTether(仅事后) | 11/14 | 78.57 | +21.43 | 25.21 | 4.64 | 94 | |
| AgentTether(完整) | 11/14 | 78.57 | +21.43 | 27.07 | 5.55 | 102 | |
| Banking (n=83) | 盲重试 | 22/83 | 26.51 | 0.00 | 83.16 | 21.38 | 1,988 |
| 结果反馈 | 17/83 | 20.48 | −6.02 | 84.86 | 17.19 | 2,013 | |
| Reflexion | 22/83 | 26.51 | +0.00 | 81.52 | 19.36 | 1,967 | |
| AgentTether(仅事后) | 39/83 | 46.99 | +20.48 | 77.17 | 17.88 | 1,671 | |
| AgentTether(完整) | 49/83 | 59.04 | +32.53 | 73.29 | 20.88 | 1,738 | |
| 总评 (n=123) | 盲重试 | 53/123 | 43.09 | 0.00 | 66.52 | 16.32 | 1,376 |
| 结果反馈 | 48/123 | 39.02 | −4.07 | 66.02 | 13.24 | 1,387 | |
| Reflexion | 55/123 | 44.72 | +1.63 | 63.45 | 14.74 | 1,356 | |
| AgentTether(仅事后) | 74/123 | 60.16 | +17.07 | 59.28 | 13.47 | 1,153 | |
| AgentTether(完整) | 85/123 | 69.11 | +26.02 | 56.36 | 15.59 | 1,197 |
总体与分域。三域合计,AgentTether 修复 85/123 个失败运行(69.11%),较盲重试 +26.02 pp、较"仅事后"+8.94 pp——两个阶段都有贡献:图引导事后诊断把整体修复率从 43.09% 提到 60.16%,守护式运行时干预再提到 69.11%。最大分域增益在 Banking:修复 49/83(59.04%)、较盲重试 +32.53 pp。Banking 含长程约束、合规检查与状态变更操作,仅靠反复执行难以恢复;该域的提升表明 AgentTether 正是针对"修复需要指认上游决策、并在重执行中保住纠正"的情形。
对比更简单的修复信号。盲重试整体修复 43.09%,说明部分失败可经随机重执行恢复,但 Banking 仅 26.51%。Reflexion 整体 44.72%、只比盲重试高 1.63 pp,且对 Banking 毫无改善——智能体自我批评往往找不到引发失败的上游决策。结果反馈整体反而低于盲重试(39.02%):最终评估器反馈信息不足,甚至会把智能体引向表面症状而非致失败转移。相比之下,"仅事后"修复 60.16%,说明加入运行时干预之前图引导事后引导本身已有价值。
图引导 RCA 的定位精度。直接检验其能否定位图 2 所示的上游失败区域:对 Qwen3.7-max 的 78 个行为性 Banking 失败(排除 5 个纯沟通运行),设 $g$ 为最早被违反的 τ-bench 金标动作的 TU 位置、$\hat{p}$ 为异常结构 $S$ 中保留的峰值 TU(分析师确认前)。该代理偏保守——$g$ 只标首个外部可见的违反,而图引导 RCA 可能选中导致它的更早漂移。即便如此,$S$ 仍覆盖 $g$ 于 56/78(71.8%)个运行,说明图证据包通常包含失败关键区域;$\hat{p}$ 也比位置/密度捷径更接近 $g$:AgentTether 的中位误差 5.5 个 TU,对比近因 6.0、频次 10.0——图归因比"从末尾症状倒读轨迹"或"选错误最密区域"更稳健。
| 方法 | Retail | Airline | Banking | 总评 |
|---|---|---|---|---|
| AgentTether(完整) | 96.15 | 78.57 | 59.04 | 69.11 |
| 去掉离线 HGT 检测器 | 92.31 | 71.43 | 27.71 | 46.34 |
| 去掉修复记忆 | 92.31 | 78.57 | 34.94 | 52.03 |
组件消融。去掉离线 HGT 检测器(只留实时检测器定位):整体从 69.11% 降至 46.34%,Banking 从 59.04% 跌至 27.71%——学得的正常执行先验对找对失败区域至关重要。去掉修复记忆(无法记录哪些纠正已修复、哪些未解决):整体降至 52.03%,Banking 跌至 34.94%——跨迭代状态对多轮修复中保住纠正至关重要。
交互预算与时延。相对盲重试,"仅事后"把平均智能体轮次从 66.52 降到 59.28、每任务端到端方法 token 从 1,376K 降到 1,153K,同时修复率从 43.09% 升至 60.16%;完整 AgentTether 平均 56.36 轮、1,197K token——比盲重试少约 13% 的 token,且修复率最高。轨迹定位的引导与运行时检查点减少了无效重执行,而不是简单拉长交互。墙钟时间呈不同格局(含辅助验证与干预时延):完整 AgentTether 快于盲重试(15.59 vs 16.32 分钟)但慢于"仅事后"(15.59 vs 13.47 分钟)——守护式运行时干预以额外墙钟开销换取修复率提升与智能体侧轮次下降的权衡。
跨模型迁移。选 Banking 做迁移研究因其给两个智能体都留下足够初始失败任务(Qwen3.7-max 83 个、GPT-5.4 86 个),且这些集合按模型各自划定、不构成基座模型排名。图引导诊断跨模型家族有效:Qwen 上"仅事后"修复 46.99%(较盲重试 +20.48 pp);GPT-5.4 上修复 60.47%(+43.03 pp)——GPT-5.4 上的更大增幅与 Qwen 趋势一致,说明图引导事后引导不绑定单一模型家族。叠加运行时干预对两者都有提升:完整版在 Qwen 达 59.04%(49/83,较"仅事后"+12.05 pp)、在 GPT-5.4 达 65.12%(56/86,+4.65 pp)。GPT-5.4 的干预增益较小,反映仅靠图引导反馈后残余漂移案例更少;Qwen3.7-max 更常在重执行中偏离注入的修复引导,故从运行时检查获益更多。
修复动态。Banking 跨迭代累计修复率(图 5b)显示修复集中于迭代 1——引入引导后的首次重试:完整 AgentTether 下,43.37% 的 Qwen 初始失败 Banking 任务在第 1 迭代修复,占最终全部修复的 73.5%;GPT-5.4 为 54.65%,占 83.9%。后续迭代的边际增益大幅递减,支持 AgentTether 的有界修复协议——少量修复迭代即可捕获绝大多数可恢复案例。
| 域 | 帮助 (Helped) | 受损 (Hurt) | 净增益 | 显著性 |
|---|---|---|---|---|
| Retail (n=26) | 1 | 0 | +1 | p=1.00 |
| Airline (n=14) | 2 | 2 | +0 | p=1.00 |
| Banking (n=83) | 13 | 3 | +10 | p=0.021 * |
为解释该结果,作者检查 Banking 域帮助/受损案例的运行时干预日志。帮助案例收到稀疏干预:13 个帮助任务平均每任务 11.3 次干预;所有记录在案的全部使用较轻的"工具返回"通道——Banking 的偏离多在工具执行后以缺失证据、未满足前置条件或过早状态变更的形式浮现;大多数对应结构检查,少量为期望偏差警告。这表明被修复案例中的干预实为轻量检查点:让智能体对齐修复引导、同时允许其继续任务。受损案例则相反:3 个受损任务平均每任务 29.3 次干预,且更大比例是状态变更调用上的期望偏差警告——当同一守卫围绕某个必需动作反复触发时,智能体可能反复重规划而不 committing 到正确操作。冷却期与触发上限虽限制了过度干预,但"及时纠正 vs 过度控制"的平衡仍是开放的政策设计问题。
干预有用但并非免费。AgentTether 把事后诊断与运行时干预分开,因为"指认失败决策"与"重执行中保住纠正"是两个不同问题。这一区分解释了结果格局:干预在 Banking 帮助最大(长轨迹 + 状态变更使一次性引导快速衰减),在 Airline 呈中性(合理探索本身形似漂移)。受损案例揭示主要风险:围绕必需动作的反复防护可能诱发重规划而非执行。未来系统应让干预强度自适应域风险、任务阶段与模型能力。
修复质量依赖辅助判断。AgentTether 用分析师做诊断、验证器做干预确认,并未消除对 LLM 判断的依赖。三个性质约束该依赖:诊断扎根于 CTG 定位的遥测、并有图算法兜底;验证器只把守干预、不判定任务结果,防过控守卫限制了一次错误调用的破坏;辅助角色与被修复智能体分离,降低自评泄漏。经由更强的免标注诊断或更轻的验证器减少这种依赖是有前景的方向。
范围与部署。AgentTether 不是"更贵的重试":它在提升修复率的同时降低智能体轮次与端到端方法 token,并在独立的 GPT-5.4 Banking 研究中同样恢复失败。主要新增成本是辅助时延,部署因此成为"离线事后修复 vs 完整运行时干预"之间的选择。评估覆盖长而有状态工具使用任务中的过程级失败,但生产系统可能有不同的失败分布、工具生态与评估器可靠性;扩展到代码生成、多智能体协作与生产可观测性是未来工作。
| 系统 | 诊断性 | 步骤级推理 | 在线 | 有状态 | 免预言机 |
|---|---|---|---|---|---|
| Reflexion | ✗ | ✗ | ✗ | ✓ | ✓ |
| Self-Refine | ✗ | ✗ | ✗ | ✗ | ✓ |
| SelfDebug | ✗ | ✓ | ✗ | ✗ | ✗ |
| Failure Attribution | ✓ | ✓ | ✗ | ✗ | ✗ |
| PROBE | ✓ | ✓ | ✗ | ✗ | ✓ |
| AgentTether | ✓ | ✓ | ✓ | ✓ | ✓ |
基于反馈的智能体修复。Reflexion 从言语反馈学习,Self-Refine 走"生成—批评"循环,SelfDebug 依据测试结果重执行;CRITIC(工具交互式批评)、迭代式计算机控制智能体及自纠正/内心独白规划研究探索相近反馈通道;DSPy、ProTeGi 等离线优化器则在执行前搜索提示模板。这些方法支持重试级或提示级适配,但其反馈不绑定具体行为转移,也不在重执行中保持纠正有效。
过程级分析与运行时监控。自动失败归因从执行日志定位造成任务失败的智能体与步骤;经典软件工程故障定位与分布式系统依赖图根因分析启发了本文的图归因,但需大量改造以适应 LLM 轨迹的语义性与非确定性。运行时监控方法(规约式监控、过程挖掘、LM 模拟沙箱)随执行展开监视,但主要 enforcing 安全或规约约束,未闭合"从诊断到修复"的回路。
失败锚定的恢复。PROBE 将失败后恢复锚定在运行遥测上,把失败运行证据组织为失败类别的结构化诊断与有界恢复引导——故障类别识别准确率高但修复率低,说明"叫得出故障类型"必要而远不充分。AgentTether 则在 CTG 上做图引导 RCA,把分析师 LLM 的诊断转为行为域引导,经修复记忆携带"已修复/未解决"状态,并在修复中智能体漂移时施加守护式运行时干预——是唯一同时具备诊断性、步骤级推理、在线干预、跨迭代状态与免预言机运作的系统。
AgentTether 是一个运行时修复框架,弥合"诊断失败的 LLM 智能体轨迹"与"在后续执行中恢复它们"之间的鸿沟。它把运行抽象为转换单元,在关键转移图上定位失败关键子轨迹,将诊断转化为有状态引导与守护式运行时干预——全程不修改底层智能体或环境。在 261 个 τ-bench 任务与两个模型家族上,AgentTether 在降低智能体侧无效执行的同时改善修复:Banking 上修复 59.04% 的 Qwen3.7-max 初始失败任务与 65.12% 的 GPT-5.4 初始失败任务。结果表明,有效的智能体修复不止于识别失败:诊断必须跨迭代携带,且只在执行漂移时强制执行。未来工作包括自适应干预策略、多智能体修复,以及与生产可观测性平台的集成。代码与数据已公开(anonymous.4open.science/r/AgentTether-9416)。
| 中文术语 | 英文原文 | 简释 |
|---|---|---|
| 转换单元(TU) | Transition Unit | 一个"决策—执行—反馈"循环的四元组 $(o_k,b_k,a_k,f_k)$:观测、信念、动作、反馈;轨迹的基本节点 |
| 关键转移图(CTG) | Critical Transition Graph | 以 TU 为节点、时间边 + 依赖边(共享工件/错误签名)构成的轨迹图,支撑沿依赖路径回溯归因 |
| 修复记忆 | Repair Memory | 跨迭代记录"哪些纠正已修复 / 未解决"的状态,防止修复回归、强化顽固问题 |
| 守护式(运行时)干预 | guarded (run-time) intervention | Check→Decide→Inject 流水线 + 证据接地/冷却期/最小干预三重防护的在线纠偏 |
| 失败关键子轨迹 | failure-critical subtrajectory | 双检测器在 CTG 上定位的、包含根因与转折点的异常子结构 |
| 行为域引导 | behavior-scoped guidance | 限定行为范围的纠正指令 + 注入计划;经披露控制避免泄漏实例特定答案 |
| 转折点 | turning point | 运行首次离开可恢复路径的 TU($\mathrm{TU}_{t^\star}$),失败可能远在其后才浮现 |
| 子图意外度分数 | subgraph-surprise score | 离线 HGT 对每个 TU 的边重建 + 掩码属性意外度均值,度量局部上下文偏离正常先验的程度 |
| 盲重试 / 结果反馈 / 自反思 | blind retry / outcome feedback / self-reflection | 三类既有补救:无诊断重跑 / 只知是否失败 / 无外部证据的自我批评 |
| 智能体修复 | agent repair | 失败后或执行中诊断并纠正有缺陷运行,不修改底层模型或环境 |