Agent(m‑1)SR:面向智能体的自递归纠错框架
arXiv编号:arXiv:2609.22068v1 cs.AI
摘要
大模型工具调用智能体在长视界复杂任务中容易出现工具参数错误、逻辑推理漏洞、幻觉,一旦发生错误,后续步骤会基于错误状态持续传播错误。现有的纠错方案大多依赖外部独立评判器、额外反思轮次,需要消耗大量额外token,并且很难定位深层链式传播错误。本文提出Agent(m‑1)SR(Agent(m‑1)Self(m‑1)Recursive,自递归纠错) ,一套轻量自递归纠错框架。智能体在执行每一步工具调用之前,递归回溯解析当前完整轨迹,定位历史步骤根源错误;不需要额外独立评判模型,复用智能体自身推理能力完成错误检测(m‑1)诊断(m‑1)修复。
Agent(m‑1)SR设计两类递归回溯模式:受限回溯模式 限定最大回溯步数,平衡开销;自适应回溯模式 由智能体自行判断需要回退到哪一步,不需要硬编码步数上限。纠错之后,从修复点重新向前推进执行,丢弃错误分支后续全部失效轨迹。
在BFCL(m‑1)v4、OSWorld、(\tau)³(m‑1)Bench三大智能体基准开展评测。相比原生ReAct基线,Agent(m‑1)SR分别带来**+14.2%、+12.7%、+10.4%**的任务成功率提升。消融实验验证回溯机制、自适应决策模块有效性;在token开销可控前提下实现性能增益。全部代码、评测脚本开源发布。
关键词
大模型智能体;自递归纠错;错误回溯;链式错误传播;ReAct;工具调用
目录
- 引言
- 相关工作
- [Agent(m‑1)SR 方法](#Agent(m‑1)SR 方法)
- [3.1 问题定义](#3.1 问题定义)
- [3.2 原生ReAct执行与错误传播](#3.2 原生ReAct执行与错误传播)
- [3.3 Agent(m‑1)SR整体架构](#3.3 Agent(m‑1)SR整体架构)
- [3.4 两种回溯执行模式](#3.4 两种回溯执行模式)
- [3.4.1 受限回溯模式](#3.4.1 受限回溯模式)
- [3.4.2 自适应回溯模式](#3.4.2 自适应回溯模式)
- [3.5 完整运行伪代码](#3.5 完整运行伪代码)
- [3.6 Prompt设计要点](#3.6 Prompt设计要点)
- 实验设置
- [4.1 评测基准](#4.1 评测基准)
- [4.2 对比基线](#4.2 对比基线)
- [4.3 模型与环境配置](#4.3 模型与环境配置)
- [4.4 评测指标](#4.4 评测指标)
- 实验结果
- [5.1 主实验整体结果](#5.1 主实验整体结果)
- [5.2 消融实验](#5.2 消融实验)
- [5.3 回溯模式与开销权衡](#5.3 回溯模式与开销权衡)
- [5.4 错误类型统计分析](#5.4 错误类型统计分析)
- 讨论与局限性
- 结论
- 参考文献
- [附录A 完整提示词](#附录A 完整提示词)
- [附录B 实验超参数配置](#附录B 实验超参数配置)
- [附录C 补充实验结果](#附录C 补充实验结果)
1 引言
工具调用大模型智能体(如ReAct)交替执行推理思考与工具动作,完成复杂开放域任务。长视界任务中一个核心痛点:链式错误传播。早期步骤出现工具参数写错、推理幻觉、解析错误,后续全部步骤基于错误中间状态继续推演,最终任务失败。
现有纠错方案分为几类:
- 事后反思(Reflexion类) :任务结束之后复盘全部轨迹,仅用于下一次全新episode,不能修复当前正在运行的会话;
- 外部独立校验器:引入额外评判模型,每一步校验输出,带来大量额外token开销;
- 固定步数回滚:检测错误之后总是回退固定步数,无法区分浅层错误与根源在很早之前的深层错误;回退步数设置过小无法定位根源,设置过大带来巨大开销。
本文提出Agent(m‑1)SR自递归纠错框架 。复用智能体本身的推理能力,不需要额外独立评判模型。在准备执行下一个工具动作前,递归扫描完整历史轨迹,定位错误根源位置;回退至该步骤,丢弃错误分支后续全部轨迹,从修复点重新向前执行。提供两种运行模式:
- 受限回溯模式:配置最大允许回溯步数,控制计算开销;
- 自适应回溯模式:由智能体自行判断根源错误所在的历史位置,动态确定回退步数。
核心设计思想:纠错逻辑和主执行逻辑使用同一个基座模型,自递归完成"检测错误(m‑1)定位根源(m‑1)回退(m‑1)重执行"闭环,不引入外部辅助模型。
本文主要贡献
- 提出Agent(m‑1)SR自递归纠错智能体框架,实现会话内递归回溯修复链式传播错误,复用主模型推理,无需额外评判器。
- 设计受限回溯、自适应回溯两种运行模式,兼顾任务性能与token开销权衡,提供完整伪代码与提示词设计。
- 在BFCL(m‑1)v4工具调用、OSWorld操作系统智能体、(\tau)³(m‑1)Bench业务数据库智能体三大基准评测,相比原生ReAct基线,成功率分别提升14.2%、12.7%、10.4%。消融验证各模块有效性;统计各类错误修复分布。
- 开源完整实现代码、评测脚本与提示词。
2 相关工作
2.1 ReAct及衍生智能体
ReAct范式交替Thought推理与Action工具调用;Reflexion在episode结束后做反思,用于下一轮任务,不能在当前会话回滚修复历史错误。ReWoo、Tree(m‑1)of(m‑1)Thought侧重规划与分支搜索,不聚焦运行时错误回溯修复。
2.2 智能体错误检测与修复
- 外部校验器:引入第二个LLM做每一步校验,带来额外成本;
- 固定回滚:检测异常就回退N步,N是超参数,根源错误不在该窗口内则失效;
- 会话内修复:部分工作支持撤销工具操作,但依赖环境支持状态回滚;Agent(m‑1)SR重点:由模型自己定位根源错误位置,不需要外部评判器。
2.3 递归/自引用大模型
递归推理、自改进LLM大多用于单轮文本推理任务;Agent(m‑1)SR将自递归思想迁移到交互式工具调用智能体,用于历史轨迹错误溯源。
3 Agent(m‑1)SR 方法

3.1 问题定义
智能体会话轨迹:
τ = ( t 0 , a 0 , o 0 ) , ( t 1 , a 1 , o 1 ) , ... , ( t k − 1 , a k − 1 , o k − 1 ) \tau = (t_0,a_0,o_0), (t_1,a_1,o_1),...,(t_{k-1},a_{k-1},o_{k-1}) τ=(t0,a0,o0),(t1,a1,o1),...,(tk−1,ak−1,ok−1)
t i t_i ti:第 i i i步推理Thought; a i a_i ai:工具Action; o i o_i oi:环境返回观测Observation。
原生ReAct根据 τ \tau τ生成下一步 ( t k , a k ) (t_k,a_k) (tk,ak),送入环境得到 o k o_k ok,追加到轨迹。
链式错误传播 :若第 m m m步( ( m < k ) (m<k) (m<k))发生错误, ( m + 1 , ... , k ) (m+1,...,k) (m+1,...,k)全部建立在错误状态之上。目标:识别根源位置 m m m,将会话回退到 m ( m ‑ 1 ) 1 m(m‑1)1 m(m‑1)1,丢弃 ( t m , a m , o m ) , ... , ( t k − 1 , a k − 1 , o k − 1 ) {(t_m,a_m,o_m),...,(t_{k-1},a_{k-1},o_{k-1})} (tm,am,om),...,(tk−1,ak−1,ok−1),从 m ( m ‑ 1 ) 1 m(m‑1)1 m(m‑1)1重新继续执行。
前提假设:环境支持状态回滚至历史步骤(OSWorld、(\tau)³(m‑1)Bench仿真环境、BFCL工具执行沙箱均支持)。
3.2 原生ReAct执行与错误传播
原生ReAct不会溯源历史错误。即便中间步骤已经出错,仍然继续在错误轨迹上生成下一步动作,错误不断累积放大,直到任务彻底失败。
3.3 Agent(m‑1)SR整体架构
整体执行循环分为两大阶段:
- 主执行阶段:和标准ReAct一致,生成推理与工具动作;
- 自递归纠错阶段(执行动作前触发) :传入完整历史轨迹,让同一个基座模型 递归分析轨迹:
- ① 检测轨迹是否存在错误;
- ② 如果存在,定位根源错误所在的步骤索引m;
- ③ 执行环境状态回滚,丢弃m及之后全部轨迹条目;
- ④ 回到主执行阶段,从回退后的轨迹继续推进。
触发时机:每一次准备调用工具之前运行纠错递归;不是每一步都一定触发回滚;只有识别到根源错误才执行回退;没有错误就直接执行下一步动作。
3.4 两种回溯执行模式
3.4.1 受限回溯模式
配置超参数 B m a x B_{max} Bmax,允许最大回溯步数。
- 模型定位根源错误位置 m m m;
- 如果当前步 k − m ≤ B m a x k - m \le B_{max} k−m≤Bmax:执行回滚到 m ( m ‑ 1 ) 1 m(m‑1)1 m(m‑1)1;
- 如果超出 B m a x B_{max} Bmax:禁止回滚,直接继续向前执行,避免开销爆炸。>
优点:token开销有硬上限,可控;缺点:根源错误过于久远时无法修复。
3.4.2 自适应回溯模式
不设置固定步数上限;完全交给模型输出根源错误索引 m m m;只要模型判定存在根源错误就执行回滚。
优点:可以修复很早之前发生的深层根源错误;缺点:极端情况下会带来更大token消耗;增加无限回滚防护:设置全局最大回滚总次数,防止死循环反复回退。
3.5 完整运行伪代码
def agent_sr(env, max_real_steps, max_total_rollback, mode, B_max=None):
"""
env:支持状态回滚的仿真沙箱环境
max_real_steps:真实环境最大执行步数
max_total_rollback:全局总回滚次数上限,防止死循环
mode: "constrained"受限 / "adaptive"自适应
B_max:受限模式最大可回溯步数
"""
obs = env.reset()
trace = []
total_rollback_cnt = 0
while len(trace) < max_real_steps and total_rollback_cnt < max_total_rollback:
# ---------- 主执行阶段:标准ReAct生成推理与候选动作 ----------
thought, action = react_generate(trace, obs)
# ---------- 自递归纠错阶段:动作执行前触发 ----------
error_found, root_error_step = self_recursive_audit(trace, obs)
if error_found:
if mode == "constrained":
delta = len(trace) - root_error_step
if delta > B_max:
# 超出最大回溯窗口,放弃修复,直接执行动作
pass
else:
# 执行回滚
env.rollback(root_error_step - 1)
trace = trace[:root_error_step - 1]
total_rollback_cnt += 1
obs = env.get_current_obs()
continue # 回到循环开头,重新生成思考与动作
elif mode == "adaptive":
env.rollback(root_error_step - 1)
trace = trace[:root_error_step - 1]
total_rollback_cnt += 1
obs = env.get_current_obs()
continue # 重新生成
# 没有检测到错误,正常执行动作
obs, reward, done, info = env.step(action)
trace.append( (thought, action, obs) )
if done:
break
return trace
3.6 Prompt设计要点
自递归审计self_recursive_audit提示词输出固定JSON格式:
{
"has_error": true/false,
"root_error_index": int|null,
"error_analysis": "简短根源错误原因说明"
}
约束:
root_error_index是trace列表下标;无错误填null;- 要求定位根源错误步骤,不是表象错误现象;
- 不允许输出回退到0号之前。
附录A提供完整Prompt文本。
4 实验设置
4.1 评测基准
- BFCL(m‑1)v4:函数/工具调用基准,侧重参数解析、多工具组合调用;
- OSWorld:操作系统智能体,在Linux桌面仿真环境执行复杂电脑操作任务;
- (\tau)³(m‑1)Bench:数据库业务仿真智能体,带状态修改的业务流程任务。
4.2 对比基线
- Vanilla(m‑1)ReAct:原生ReAct,无纠错回滚;
- Reflexion:任务结束后反思,用于下一条episode,会话内不回滚;
- Fixed(m‑1)N(m‑1)Rollback:固定N步回滚;检测异常总是回退最近N步;设置N=2、N=4两组;
- Agent(m‑1)SR(m‑1)Constrained(本文受限模式);
- Agent(m‑1)SR(m‑1)Adaptive(本文自适应模式)。
4.3 模型与环境配置
基座模型:Qwen2.5(m‑1)7B(m‑1)Instruct;
环境:全部基准使用官方沙箱,支持环境状态rollback回滚接口 ;
超参数:
max_real_steps:各基准沿用官方默认最大步数;max_total_rollback = 8全局回滚总次数上限,防止死循环;- 受限模式 B m a x = 4 B_{max}=4 Bmax=4。
4.4 评测指标
- SR 任务成功率:完整完成任务占比(主指标);
- Avg(m‑1)Token:每条episode平均总token消耗,统计增量开销;
- Rollback(m‑1)Cnt:平均每条episode回滚次数;
- 错误分类统计:参数错误、推理幻觉、工具选择错误、解析错误。
5 实验结果
5.1 主实验整体结果
| 方法 | BFCL(m‑1)v4 成功率 | OSWorld 成功率 | (\tau)³(m‑1)Bench 成功率 | 平均Token |
|---|---|---|---|---|
| Vanilla(m‑1)ReAct | 52.6% | 37.4% | 44.1% | 12.4k |
| Reflexion | 55.3% | 39.6% | 46.3% | 13.1k |
| Fixed(m‑1)N(m‑1)Rollback(N=2) | 58.7% | 43.1% | 49.5% | 14.8k |
| Fixed(m‑1)N(m‑1)Rollback(N=4) | 61.0% | 45.2% | 51.2% | 16.3k |
| Agent(m‑1)SR(m‑1)Constrained | 64.5% | 48.6% | 53.8% | 17.1k |
| Agent(m‑1)SR(m‑1)Adaptive | 66.8% | 50.1% | 54.5% | 20.6k |
性能提升对比原生ReAct:
- BFCL(m‑1)v4:+14.2%(自适应模式)
- OSWorld:+12.7%(自适应模式)
- (\tau)³(m‑1)Bench:+10.4%(自适应模式)
自适应模式性能最优,但token开销更高;受限模式取得不错增益,开销更低,适合资源受限场景。
5.2 消融实验
| 配置 | BFCL(m‑1)v4成功率 | 说明 |
|---|---|---|
| 完整 Agent(m‑1)SR(m‑1)Adaptive | 66.8% | 完整自递归溯源+回滚 |
| 去掉根源定位,只回退最近一步 | 59.2% | 失去根源定位,仅修复表层错误 |
| 去掉自递归审计,使用外部独立评判器 | 67.1% | 性能接近,但额外引入一套模型开销 |
| 关闭回滚,只做错误诊断不修复 | 54.7% | 仅诊断不回滚几乎无收益 |
消融说明:根源错误定位是核心;只诊断不执行回滚几乎不能提升成功率;外部评判器可以拿到相近性能,但增加部署成本。
5.3 回溯模式与开销权衡
- 受限模式 B m a x B_{max} Bmax调参: B m a x = 2 B_{max}=2 Bmax=2性能提升有限; B m a x = 4 B_{max}=4 Bmax=4性价比最高;继续增大 B m a x B_{max} Bmax收益边际递减,token快速上涨。
- 自适应模式:可以修复更早根源错误;但部分样本会发生多次回滚,token开销上涨明显;全局
max_total_rollback=8有效阻止无限回滚死循环。
5.4 错误类型统计分析
统计被Agent(m‑1)SR成功修复的错误分布:
- 工具参数错误:41.2%(占比最高);
- 推理幻觉错误:28.7%;
- 工具选择错误:18.3%;
- 输出解析格式错误:11.8%。
现象:大量失败不是发生在最近一步,根源出现在2(m‑1)4步之前;固定N=2回滚经常无法命中根源。
6 讨论与局限性
- 环境依赖 :Agent(m‑1)SR依赖环境提供状态回滚rollback接口;真实物理世界、无状态网页环境无法做状态回滚,该框架不能直接使用;适合仿真沙箱、容器类可回滚环境。
- 自递归审计本身会出错:主模型自身可能漏检错误,或者错误定位错误的根源步骤,带来无效回滚,增加开销。
- 开销(m‑1)性能权衡:自适应模式性能最好,但token开销明显上升;生产部署优先选择受限回溯模式做平衡点。
- 防护机制必要性:必须设置全局最大回滚次数,防止模型陷入"检测错误(m‑1)回滚(m‑1)再次生成同样错误"的无限循环。
- 本方法聚焦会话内历史轨迹修复,和Reflexion(跨episode事后反思)可以互相组合叠加收益。
未来方向:
- 降低自递归审计token开销,例如对长轨迹做摘要后再溯源审计;
- 和树搜索类智能体结合;
- 拓展到不支持状态回滚的环境,研究不需要环境回滚的错误溯源策略。
7 结论
本文提出Agent(m‑1)SR自递归纠错智能体框架,复用基座模型自身推理能力,在工具执行前递归审计会话轨迹,定位根源错误,执行环境回滚并重执行。提供受限回溯、自适应回溯两种模式平衡性能与开销。
在BFCL(m‑1)v4、OSWorld、(\tau)³(m‑1)Bench三大基准,相比原生ReAct取得显著成功率提升。消融验证根源定位模块是性能核心;该方法适合具备状态回滚能力的沙箱仿真环境;可以与跨episode反思方案叠加使用。代码与评测脚本全部开源。
8 参考文献
完整参考文献查阅原始arXiv网页:https://arxiv.org/html/2609.22068v1
附录A 完整提示词
- 标准ReAct系统提示;
- 自递归审计
self_recursive_audit完整Prompt,含JSON输出格式约束; - 回滚边界约束、错误输出过滤规则。
附录B 实验超参数配置
全部基准的超参数: B m a x B_{max} Bmax、max_real_steps、max_total_rollback、temperature设置、环境参数、随机种子。
附录C 补充实验结果
- B m a x B_{max} Bmax参数扫描消融;
- 不同基座模型(7B(m‑1)13B)下复现结果;
- 各基准错误类型细分统计;
- 回滚次数分布统计;
- Reflexion+Agent(m‑1)SR组合实验结果。