Agent(m‑1)SR:面向智能体的自递归纠错框架

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;工具调用

目录

  1. 引言
  2. 相关工作
  3. [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. 实验设置
    • [4.1 评测基准](#4.1 评测基准)
    • [4.2 对比基线](#4.2 对比基线)
    • [4.3 模型与环境配置](#4.3 模型与环境配置)
    • [4.4 评测指标](#4.4 评测指标)
  5. 实验结果
    • [5.1 主实验整体结果](#5.1 主实验整体结果)
    • [5.2 消融实验](#5.2 消融实验)
    • [5.3 回溯模式与开销权衡](#5.3 回溯模式与开销权衡)
    • [5.4 错误类型统计分析](#5.4 错误类型统计分析)
  6. 讨论与局限性
  7. 结论
  8. 参考文献
  9. [附录A 完整提示词](#附录A 完整提示词)
  10. [附录B 实验超参数配置](#附录B 实验超参数配置)
  11. [附录C 补充实验结果](#附录C 补充实验结果)

1 引言

工具调用大模型智能体(如ReAct)交替执行推理思考与工具动作,完成复杂开放域任务。长视界任务中一个核心痛点:链式错误传播。早期步骤出现工具参数写错、推理幻觉、解析错误,后续全部步骤基于错误中间状态继续推演,最终任务失败。

现有纠错方案分为几类:

  1. 事后反思(Reflexion类) :任务结束之后复盘全部轨迹,仅用于下一次全新episode,不能修复当前正在运行的会话
  2. 外部独立校验器:引入额外评判模型,每一步校验输出,带来大量额外token开销;
  3. 固定步数回滚:检测错误之后总是回退固定步数,无法区分浅层错误与根源在很早之前的深层错误;回退步数设置过小无法定位根源,设置过大带来巨大开销。

本文提出Agent(m‑1)SR自递归纠错框架 。复用智能体本身的推理能力,不需要额外独立评判模型。在准备执行下一个工具动作前,递归扫描完整历史轨迹,定位错误根源位置;回退至该步骤,丢弃错误分支后续全部轨迹,从修复点重新向前执行。提供两种运行模式:

  • 受限回溯模式:配置最大允许回溯步数,控制计算开销;
  • 自适应回溯模式:由智能体自行判断根源错误所在的历史位置,动态确定回退步数。

核心设计思想:纠错逻辑和主执行逻辑使用同一个基座模型,自递归完成"检测错误(m‑1)定位根源(m‑1)回退(m‑1)重执行"闭环,不引入外部辅助模型。

本文主要贡献

  1. 提出Agent(m‑1)SR自递归纠错智能体框架,实现会话内递归回溯修复链式传播错误,复用主模型推理,无需额外评判器。
  2. 设计受限回溯、自适应回溯两种运行模式,兼顾任务性能与token开销权衡,提供完整伪代码与提示词设计。
  3. 在BFCL(m‑1)v4工具调用、OSWorld操作系统智能体、(\tau)³(m‑1)Bench业务数据库智能体三大基准评测,相比原生ReAct基线,成功率分别提升14.2%、12.7%、10.4%。消融验证各模块有效性;统计各类错误修复分布。
  4. 开源完整实现代码、评测脚本与提示词。

2 相关工作

2.1 ReAct及衍生智能体

ReAct范式交替Thought推理与Action工具调用;Reflexion在episode结束后做反思,用于下一轮任务,不能在当前会话回滚修复历史错误。ReWoo、Tree(m‑1)of(m‑1)Thought侧重规划与分支搜索,不聚焦运行时错误回溯修复。

2.2 智能体错误检测与修复

  1. 外部校验器:引入第二个LLM做每一步校验,带来额外成本;
  2. 固定回滚:检测异常就回退N步,N是超参数,根源错误不在该窗口内则失效;
  3. 会话内修复:部分工作支持撤销工具操作,但依赖环境支持状态回滚;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整体架构

整体执行循环分为两大阶段:

  1. 主执行阶段:和标准ReAct一致,生成推理与工具动作;
  2. 自递归纠错阶段(执行动作前触发) :传入完整历史轨迹,让同一个基座模型 递归分析轨迹:
    • ① 检测轨迹是否存在错误;
    • ② 如果存在,定位根源错误所在的步骤索引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": "简短根源错误原因说明"
}

约束:

  1. root_error_index是trace列表下标;无错误填null
  2. 要求定位根源错误步骤,不是表象错误现象;
  3. 不允许输出回退到0号之前。

附录A提供完整Prompt文本。

4 实验设置

4.1 评测基准

  1. BFCL(m‑1)v4:函数/工具调用基准,侧重参数解析、多工具组合调用;
  2. OSWorld:操作系统智能体,在Linux桌面仿真环境执行复杂电脑操作任务;
  3. (\tau)³(m‑1)Bench:数据库业务仿真智能体,带状态修改的业务流程任务。

4.2 对比基线

  1. Vanilla(m‑1)ReAct:原生ReAct,无纠错回滚;
  2. Reflexion:任务结束后反思,用于下一条episode,会话内不回滚;
  3. Fixed(m‑1)N(m‑1)Rollback:固定N步回滚;检测异常总是回退最近N步;设置N=2、N=4两组;
  4. Agent(m‑1)SR(m‑1)Constrained(本文受限模式)
  5. 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成功修复的错误分布:

  1. 工具参数错误:41.2%(占比最高);
  2. 推理幻觉错误:28.7%;
  3. 工具选择错误:18.3%;
  4. 输出解析格式错误:11.8%。

现象:大量失败不是发生在最近一步,根源出现在2(m‑1)4步之前;固定N=2回滚经常无法命中根源。

6 讨论与局限性

  1. 环境依赖 :Agent(m‑1)SR依赖环境提供状态回滚rollback接口;真实物理世界、无状态网页环境无法做状态回滚,该框架不能直接使用;适合仿真沙箱、容器类可回滚环境。
  2. 自递归审计本身会出错:主模型自身可能漏检错误,或者错误定位错误的根源步骤,带来无效回滚,增加开销。
  3. 开销(m‑1)性能权衡:自适应模式性能最好,但token开销明显上升;生产部署优先选择受限回溯模式做平衡点。
  4. 防护机制必要性:必须设置全局最大回滚次数,防止模型陷入"检测错误(m‑1)回滚(m‑1)再次生成同样错误"的无限循环。
  5. 本方法聚焦会话内历史轨迹修复,和Reflexion(跨episode事后反思)可以互相组合叠加收益。

未来方向:

  1. 降低自递归审计token开销,例如对长轨迹做摘要后再溯源审计;
  2. 和树搜索类智能体结合;
  3. 拓展到不支持状态回滚的环境,研究不需要环境回滚的错误溯源策略。

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 完整提示词

  1. 标准ReAct系统提示;
  2. 自递归审计self_recursive_audit完整Prompt,含JSON输出格式约束;
  3. 回滚边界约束、错误输出过滤规则。

附录B 实验超参数配置

全部基准的超参数: B m a x B_{max} Bmax、max_real_steps、max_total_rollback、temperature设置、环境参数、随机种子。

附录C 补充实验结果

  1. B m a x B_{max} Bmax参数扫描消融;
  2. 不同基座模型(7B(m‑1)13B)下复现结果;
  3. 各基准错误类型细分统计;
  4. 回滚次数分布统计;
  5. Reflexion+Agent(m‑1)SR组合实验结果。

相关推荐
科创致远4 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
嘉立创FPC苗工4 小时前
FPC与机器人的双向赋能,解锁智能装备进化新势能
大数据·人工智能·制造·fpc·电路板
染指11104 小时前
122.Agent-LangChain核心组件-中间件-动态提示词(dynamic_promapt)
人工智能·langchain·agent·agents
AI职业加油站4 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
AI产品测评官4 小时前
海内外AI招聘工具分赛道横向对比:五大品类的技术路线与选型参考
人工智能·ai·求职招聘
是Dream呀4 小时前
中秋国庆回家不背电脑,用ToDesk远程反连学校设备,查资料、改作业
人工智能·agent·todesk
奇思妙想聪明勤奋的小羊4 小时前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
czxxxc4 小时前
创客匠人AI智能体:推动知识服务进入智能化运营新阶段
人工智能·知识付费
俊哥V4 小时前
每日 AI 研究简报 · 2026-09-21
人工智能·ai