首页 › ai-agents › 自主Agent自纠五栈跃迁:从内在悖论到过程奖励实测

从一场"自我否定"的学术地震说起

2023年底,ICLR 2024收录了一篇"砸场子"的论文——《Large Language Models Cannot Self-Correct Reasoning Yet》。Huang等人用严格的实验证明:当LLM在没有外部反馈的情况下审查自己的推理时,纠错不仅没有帮助,反而引入了新的错误。这篇论文直接动摇了整个Agent自纠范式的根基。两年后的今天,Agent自纠非但没有消失,反而沿着五条截然不同的技术栈迅速演进——从最朴素的重试,到语言反射强化学习,再到2026年ICLR/WWW上崭露头角的过程奖励模型(Process Reward Model)。这五条技术栈不是简单的替代关系,而是在精度、成本、延迟、外部依赖四个维度上形成了完整的取舍光谱。

本文沿着这条演进路径,对五层自纠栈做深度拆解:每一层解决什么问题、留下什么盲区、在生产环境中付出什么代价。


五栈全景对比

维度 Stack 1: 简单重试 Stack 2: Self-Refine Stack 3: Reflexion Stack 4: LATS/ToT Stack 5: PRM
核心机制 固定轮次重新生成 自评+自改循环 语言反射存入记忆 树搜索+反射评估 外部模型逐步打分
外部信号 无 无 执行结果(二元) 环境反馈 训练过的奖励模型
典型轮次 1-3次 2-5次 3-10次episode 5-50次rollout N条轨迹Best-of-N
Token开销 1-3× 2-5× 5-20× 10-100× N×(N=采样数)
额外模型 无 无 无/可选评估器 无 PRM(需训练)
延迟增幅 低 中 高 极高 中-高(并行采样)
HumanEval pass@1 ~80%(GPT-4基准) ~82% 91% 94%+ 95%+
ALFWorld成功率 — ~75% 97% 98%+ —
上手难度 零 低 中 高 极高
生产就绪度 ★★★★★ ★★★★ ★★★ ★★ ★★
变现潜力 低(太基础) 中 高(训练营级) 高(技术壁垒) 极高(模型即服务)

Stack 1:简单重试——"再来一次"的幻觉

架构原理

简单重试是最原始的自纠形式:Agent执行任务,拿到结果,如果判定失败就重新生成。看似合理,实则暗藏陷阱。

Huang等人在ICLR 2024上的核心发现可以归纳为三点:第一,在没有外部反馈的情况下,LLM的自我审查准确率不显著高于随机猜测;第二,所谓"纠错成功"的案例中,大部分是将原本正确的答案改错了又改回来,而非真正识别并修正了错误;第三,当原始答案正确时,自纠过程反而有15-30%的概率将其改为错误答案。

# Stack 1: Naive Retry — 问题比你想的更严重
class NaiveRetryAgent:
    def __init__(self, llm, max_retries=3):
        self.llm = llm
        self.max_retries = max_retries

    def run(self, task: str) -> str:
        for attempt in range(self.max_retries):
            response = self.llm.generate(task)
            # "自我审查"——问题所在:模型没有额外信息来判断对错
            review = self.llm.generate(
                f"Review this answer for correctness:\n"
                f"Task: {task}\nAnswer: {response}\n"
                f"Is it correct? If not, provide the correct answer."
            )
            if "correct" in review.lower() and "not" not in review.lower():
                return response
            # 用审查结果替代原始答案——但审查本身可能更错
            response = review
        return response

残酷的数学

AgentMarketCap 2026年4月的自纠基准报告给出了一个令人清醒的量化视角:在HotPotQA上,GPT-4o的简单重试(无外部反馈)将准确率从74.2%提升到了74.8%——0.6个百分点的提升,代价是3倍的Token消耗。在数学推理(GSM8K)上,情况更糟:第二轮自纠的准确率从92.1%下降到91.7%。这就是Huang等人所说的"内在自纠悖论"——模型在不引入新信息的情况下,无法可靠地判断自己的输出是否正确。

生产中的微妙之处

简单重试并非毫无价值。当外部验证信号存在时(如单元测试通过/失败、API返回200/500),重试变成了完全不同的机制——不再是"自纠",而是"外部反馈驱动的重试"。这种模式下,重试的成功率可以跃升至60-80%(SWE-bench上的patch重试数据)。关键区别在于:信号来源是内部的还是外部的。


Stack 2:Self-Refine——"自我批评"的结构化循环

架构原理

Self-Refine(Madaan et al., 2023)将自纠过程结构化为三个固定角色:Generator(生成初始输出)、Critic(评价输出质量并提出修改建议)、Refiner(根据建议修改输出)。三者在同一模型上通过不同的prompt轮转扮演。

# Stack 2: Self-Refine — 结构化三角色循环
class SelfRefineAgent:
    def __init__(self, llm, max_rounds=3):
        self.llm = llm
        self.max_rounds = max_rounds

    def generate(self, task: str) -> str:
        output = self.llm.generate(f"Generate: {task}")
        for _ in range(self.max_rounds):
            # Critic角色:给出具体的、结构化的反馈
            critique = self.llm.generate(
                f"Act as a critic. Evaluate this output:\n"
                f"Task: {task}\nOutput: {output}\n\n"
                f"Provide specific feedback on:\n"
                f"1. Accuracy issues\n2. Completeness gaps\n"
                f"3. Style/quality improvements\n"
                f"Be concrete — cite specific parts that need change."
            )
            # Refiner角色:只改Critic指出的部分
            output = self.llm.generate(
                f"Based on this feedback, refine the output:\n"
                f"Original: {output}\nFeedback: {critique}\n"
                f"Only change what the feedback specifically addresses."
            )
        return output

为什么比简单重试好

Self-Refine的关键创新不是"自我批评"这个概念本身,而是将批评结构化了。普通重试的prompt是"看看对不对",Self-Refine的prompt是"从准确度、完整度、风格三个维度逐一评估"。这种结构化约束迫使模型的注意力分布更均匀,减少了"整体觉得还行就跳过"的懒惰审查。

实验数据显示,在文本生成任务(sentiment reversal、dialogue response)上,Self-Refine相比基线提升显著——人类评估偏好率从基线的30-40%提升到65-78%。但在需要精确推理的任务(数学、逻辑)上,提升幅度急剧缩水至2-5%,再次印证了"内在自纠悖论"在推理任务上的顽固性。

生产陷阱:退化循环

Self-Refine在生产中最常见的问题是"风格漂移"——每一轮refinement都让输出朝着某个隐含偏好方向移动。例如,代码生成任务中,三轮Self-Refine后代码倾向于变得更冗长、更保守,虽然"看起来更完整",但实际上引入了不必要的复杂度。第三个陷阱是收敛假象——Critic的反馈越来越短("看起来不错了"),但这并不意味着质量真的在提升,可能只是模型的"评论疲劳"。


Stack 3:Reflexion——将失败语言化为经验

架构原理

Reflexion(Shinn et al., NeurIPS 2023)是自纠范式的第一个真正突破。其核心洞察是:不修改模型权重,而是将失败经验用自然语言记录下来,作为未来决策的"口头强化学习"信号。

完整的Reflexion循环包含四个阶段:Actor执行任务 → Evaluator评分(可以是启发式规则或另一个LLM)→ Self-Reflection生成失败分析 → 将反思存入记忆 buffer → 下一次episode时检索相关记忆作为额外上下文。

# Stack 3: Reflexion — 语言强化学习的完整实现
import json
from dataclasses import dataclass, field

@dataclass
class ReflexionMemory:
    entries: list = field(default_factory=list)

    def add(self, task: str, trajectory: str,
            reward: float, reflection: str):
        self.entries.append({
            "task_summary": task[:100],
            "reward": reward,
            "reflection": reflection,
            "trajectory_snippet": trajectory[-500:]
        })

    def retrieve(self, current_task: str, top_k: int = 3) -> str:
        """基于任务相似度检索相关反思"""
        # 生产环境应使用向量检索
        relevant = sorted(
            self.entries,
            key=lambda x: len(
                set(current_task.split()) &
                set(x["task_summary"].split())
            ), reverse=True
        )[:top_k]
        return "\n".join(
            f"Past experience (reward={e['reward']}):\n"
            f"{e['reflection']}\n"
            for e in relevant
        )

class ReflexionAgent:
    def __init__(self, llm, evaluator, max_episodes=5):
        self.llm = llm
        self.evaluator = evaluator
        self.memory = ReflexionMemory()
        self.max_episodes = max_episodes

    def act(self, task: str) -> str:
        past_reflections = self.memory.retrieve(task)
        context = f"Task: {task}\n"
        if past_reflections:
            context += (
                f"\n--- Past Reflections ---\n"
                f"{past_reflections}\n"
                f"--- End Reflections ---\n\n"
                f"Learn from these past experiences.\n"
            )
        trajectory = self._run_episode(context)
        reward = self.evaluator.score(task, trajectory)

        if reward < 1.0:
            reflection = self.llm.generate(
                f"You attempted this task and scored {reward}.\n"
                f"Trajectory:\n{trajectory}\n\n"
                f"Analyze your failures:\n"
                f"1. What specific mistakes did you make?\n"
                f"2. Why did each mistake occur?\n"
                f"3. What would you do differently?"
            )
            self.memory.add(task, trajectory, reward, reflection)
        return trajectory

    def _run_episode(self, context: str) -> str:
        return self.llm.generate(context)

数据说话

Reflexion在ALFWorld(文本版家庭环境交互)上从基线的77%跃升至97%,在HumanEval代码生成上从80%升至91%。这些数字看起来惊人,但有几个关键前提:第一,Evaluator必须是外部的(启发式测试或独立评估器),不能是模型自评——这直接绕过了内在自纠悖论;第二,Reflexion在决策类任务(如ALFWorld)上的收益远大于推理类任务,因为决策的"错误"更容易被外部信号捕捉;第三,内存检索的质量直接决定性能——当记忆积累超过50条后,不使用向量检索的性能反而下降(无关记忆干扰)。

生产的成本账

Reflexion的代价是Token消耗的指数增长。每个episode需要:完整任务执行(≈500 tokens)+ Evaluator调用(≈100 tokens)+ 反思生成(≈300 tokens)+ 记忆检索上下文(随episode线性增长)。5个episode的总消耗约为基线的8-12倍。在生产中,这意味着一个原本$0.02的任务变成了$0.16-$0.24。

更隐蔽的成本是延迟——Reflexion是串行的(必须等一个episode完成才能开始反思和下一个episode),5个episode意味着至少5倍的端到端延迟。对于实时交互场景,这往往是不可接受的。


Stack 4:LATS/ToT——搜索驱动的自纠

架构原理

Tree of Thoughts(ToT, Yao et al., 2023)和Language Agent Tree Search(LATS, Zhou et al., ICML 2024)代表了自纠范式的根本性转变:不再是"错了再试",而是"同时探索多条路,选最好的"。

LATS将蒙特卡洛树搜索(MCTS)与LLM推理统一在同一个框架中。每个节点代表一个中间状态(当前推理步骤+环境状态),每条边代表一个动作(工具调用、推理步骤)。四个经典MCTS步骤被重新定义:

# Stack 4: LATS 核心循环(简化版)
import math
from typing import Optional

class MCTSNode:
    def __init__(self, state: str, parent=None):
        self.state = state
        self.parent = parent
        self.children = []
        self.visits = 0
        self.value = 0.0
        self.reflection: Optional[str] = None

    def ucb(self, exploration=1.414) -> float:
        if self.visits == 0:
            return float('inf')
        exploit = self.value / self.visits
        explore = exploration * math.sqrt(
            math.log(self.parent.visits) / self.visits
        )
        return exploit + explore

    def best_child(self) -> 'MCTSNode':
        return max(self.children, key=lambda c: c.ucb())

class LATSAgent:
    def __init__(self, llm, evaluator, n_candidates=3,
                 max_depth=10, n_simulations=20):
        self.llm = llm
        self.evaluator = evaluator
        self.n_candidates = n_candidates
        self.max_depth = max_depth
        self.n_simulations = n_simulations

    def run(self, task: str) -> str:
        root = MCTSNode(state=task)
        for _ in range(self.n_simulations):
            node = self._select(root)
            if self._is_terminal(node):
                reward = self.evaluator.score(node.state)
            else:
                children = self._expand(node)
                reward = self._simulate(
                    children[0]  # 简化:取第一个子节点模拟
                )
            self._backpropagate(node, reward)
        return self._best_path(root)

    def _expand(self, node: MCTSNode) -> list:
        candidates = self.llm.generate(
            f"Generate {self.n_candidates} different next steps:\n"
            f"Current state: {node.state}\n"
            f"Provide each as a separate numbered option.",
            n=self.n_candidates
        )
        for c in candidates:
            child = MCTSNode(state=c, parent=node)
            # LATS特色:用LLM自我评估节点价值
            child.reflection = self.llm.generate(
                f"Evaluate this intermediate state:\n{c}\n"
                f"Rate progress toward solving the task (1-10)."
            )
            node.children.append(child)
        return node.children

    def _simulate(self, node: MCTSNode) -> float:
        """快速rollout:用LLM完成剩余步骤并评估"""
        rollout = self.llm.generate(
            f"Quickly complete from this state:\n{node.state}"
        )
        return self.evaluator.score(rollout)

    def _backpropagate(self, node: MCTSNode, reward: float):
        while node:
            node.visits += 1
            node.value += reward
            node = node.parent

    def _best_path(self, root: MCTSNode) -> str:
        node = root
        while node.children:
            node = max(node.children, key=lambda c: c.visits)
        return node.state

精度与代价的天平

LATS在HotPotQA上比ReAct高出约5个百分点,在ALFWorld上达到98%的成功率。但代价是惊人的:20次MCTS模拟,每次3个候选步骤,意味着至少60次LLM调用。以GPT-4o的价格计算,一个中等复杂度的推理任务可能消耗$0.50-$2.00。

2026年的一个重要进展是ICLR收录的ToolTree框架——将MCTS专门应用于工具规划。ToolTree引入了"双反馈"机制:工具执行结果提供外部信号(解决内在悖论),同时MCTS结构提供系统化的探索(避免贪心短视)。在ToolBench上,ToolTree比贪心工具选择高出12-18个百分点,Token开销控制在ReAct的3-5倍——比标准LATS高效得多。

生产的现实

LATS/ToT目前主要在两类场景下值得付出代价:第一,高价值决策(金融交易策略、医疗诊断建议),一次正确的价值远超几百个Token的成本;第二,离线批量处理(数据分析pipeline、代码审查),延迟不敏感。在实时对话、客户服务等场景中,LATS的延迟(分钟级)使其完全不实用。


Stack 5:Process Reward Model——外部验证者的崛起

架构原理

Process Reward Model(PRM)代表了自纠范式的最新方向:训练一个专门的过程验证模型,对推理的每一个中间步骤打分,而不是等最终结果再判断对错。

2025-2026年的两个关键工作推动了这一方向:

AgentPRM(Xi et al., WWW 2026)提出了"Step-wise Promise and Progress"框架。其核心洞察是:在Agent的多步决策中,每一步都有两个维度的质量——Promise(这一步声称要做什么)和Progress(这一步实际推进了多少)。AgentPRM训练一个模型来评估每一步的Promise-Progress匹配度。

# Stack 5: AgentPRM — 过程奖励驱动的自纠
class AgentPRMSelfCorrection:
    def __init__(self, actor_llm, prm_model,
                 n_samples=5, threshold=0.7):
        self.actor = actor_llm
        self.prm = prm_model  # 过程奖励模型
        self.n_samples = n_samples
        self.threshold = threshold

    def run(self, task: str) -> str:
        # 阶段1:生成N条候选轨迹
        trajectories = []
        for i in range(self.n_samples):
            traj = self._generate_trajectory(task)
            trajectories.append(traj)

        # 阶段2:用PRM对每条轨迹逐步打分
        scored = []
        for traj in trajectories:
            step_scores = []
            for step_idx, step in enumerate(traj.steps):
                # Promise:这一步声称做什么
                promise = self.actor.generate(
                    f"What does this step promise to accomplish?\n"
                    f"Step: {step.content}\n"
                    f"State: {step.context}"
                )
                # Progress:实际推进了多少
                progress_score = self.prm.score(
                    task=task,
                    step=step.content,
                    promise=promise,
                    history=traj.steps[:step_idx]
                )
                step_scores.append(progress_score)

            # 轨迹总分 = min(逐步分数) — 木桶原理
            traj_score = min(step_scores) if step_scores else 0
            scored.append((traj, traj_score, step_scores))

        # 阶段3:选择最佳轨迹
        scored.sort(key=lambda x: x[1], reverse=True)
        best_traj, best_score, best_step_scores = scored[0]

        # 阶段4:对低于阈值的步骤进行定向修正
        corrected_steps = list(best_traj.steps)
        for i, score in enumerate(best_step_scores):
            if score < self.threshold:
                corrected = self.actor.generate(
                    f"This step was rated {score:.2f}/1.0.\n"
                    f"Original step: {corrected_steps[i].content}\n"
                    f"Specific issue: low progress toward goal.\n"
                    f"Rewrite this step to be more effective."
                )
                corrected_steps[i] = corrected

        return corrected_steps

    def _generate_trajectory(self, task: str):
        return self.actor.generate(task)

PRM的关键优势

PRM从根本上绕过了内在自纠悖论:判断推理质量的不是同一个模型的主观感觉,而是一个独立训练的验证模型。这个验证模型在海量"正确推理链"和"错误推理链"的对比数据上训练过,学会了区分好的中间步骤和坏的中间步骤。

AgentPRM在AlfWorld上比Reflexion高出2-3个百分点,在WebShop上高出5个百分点。更重要的是,PRM的Best-of-N采样是天然可并行的——N条轨迹同时生成、同时评分、选最优——延迟只增加1倍(并行)而非N倍(串行)。

训练成本和可用性

PRM的最大障碍是需要训练过程奖励模型。AgentPRM使用了约10万条人工标注的步骤级反馈数据,训练一个7B参数的PRM模型。对于大多数团队来说,这个数据标注成本(约$50K-$100K)和训练成本(约$5K-$10K GPU时间)构成了显著的进入门槛。

2026年的一个缓解趋势是开源PRM的出现。PRMBench等基准测试推动了标准化,HuggingFace上已经出现了多个预训练的通用PRM(如MathShepherd、RewardBench排名靠前的模型),可以直接接入Agent pipeline作为"即插即用"的验证器。


五栈架构演进图

graph TD
    subgraph "Stack 1: Naive Retry"
        A1[执行任务] --> A2{自我审查}
        A2 -->|通过| A3[返回结果]
        A2 -->|失败| A1
    end

    subgraph "Stack 2: Self-Refine"
        B1[Generator<br>生成初始输出] --> B2[Critic<br>结构化评价]
        B2 --> B3[Refiner<br>定向修改]
        B3 --> B2
    end

    subgraph "Stack 3: Reflexion"
        C1[Actor执行] --> C2[Evaluator<br>外部评分]
        C2 -->|失败| C3[Self-Reflection<br>语言化失败分析]
        C3 --> C4[Memory Buffer<br>存储反思]
        C4 --> C1
    end

    subgraph "Stack 4: LATS/MCTS"
        D1[Selection<br>UCB选节点] --> D2[Expansion<br>LLM生成候选]
        D2 --> D3[Simulation<br>快速rollout]
        D3 --> D4[Backpropagation<br>回传更新]
        D4 --> D1
    end

    subgraph "Stack 5: PRM"
        E1[并行采样N条轨迹] --> E2[PRM逐步打分]
        E2 --> E3[选最优轨迹]
        E3 --> E4[低分步骤定向修正]
        E4 --> E5[最终输出]
    end

    A3 --> B1
    B3 --> C1
    C4 --> D1
    D4 --> E1

    style A1 fill:#ffcccc
    style B1 fill:#ffe0b2
    style C1 fill:#fff9c4
    style D1 fill:#c8e6c9
    style E1 fill:#bbdefb

五栈自纠决策树

graph LR
    START[任务类型?] --> Q1{需要精确<br>推理?}
    Q1 -->|否| Q2{有外部<br>验证器?}
    Q1 -->|是| Q3{预算允许<br>PRM训练?}

    Q2 -->|是| R1[Stack 1<br>简单重试+外部信号]
    Q2 -->|否| R2[Stack 2<br>Self-Refine]

    Q3 -->|是| Q4{延迟<br>敏感?}
    Q3 -->|否| Q5{有记忆<br>需求?}

    Q4 -->|是| R5[Stack 5<br>PRM并行采样]
    Q4 -->|否| R4[Stack 4<br>LATS深度搜索]

    Q5 -->|是| R3[Stack 3<br>Reflexion]
    Q5 -->|否| R2

    style R1 fill:#ffcccc
    style R2 fill:#ffe0b2
    style R3 fill:#fff9c4
    style R4 fill:#c8e6c9
    style R5 fill:#bbdefb

深度分析:五栈的交汇与融合

内在悖论的"越狱"路径

五栈演进的本质是对"内在自纠悖论"的不同突围策略。Stack 1和2试图直接越狱——让模型自己审判自己——结果证明效果有限。Stack 3引入了外部执行结果作为信号,但信号是二元的(成功/失败),粒度太粗。Stack 4用搜索结构系统性规避单点失败,但没解决"怎么判断哪条路更好"的根本问题。Stack 5直接训练了一个外部验证者,从根本上改写了游戏规则——判断推理质量的不再是当事模型的自我感觉,而是一个在百万级标注数据上训练过的"裁判"。

2026年的前沿趋势是不确定性校准的自纠(Uncertainty-Calibrated Self-Correction)。Curve Labs的研究表明,当Agent将其置信度估计与自纠触发阈值绑定时——只在"不确定自己是否正确"时才触发自纠——Token消耗可以减少40-60%,而质量损失控制在1-2%以内。这是一个关键的实用化突破:大多数情况下Agent的第一次输出就是对的,全局自纠是一种浪费。

成本-精度的Pareto前沿

将五栈放在"每任务Token消耗 vs 任务成功率"的坐标系中,可以清晰地看到Pareto前沿:

值得注意的是,Stack 4(LATS)几乎不在Pareto前沿上——同等精度下,PRM更便宜(并行 vs 串行);同等成本下,Reflexion更精确(记忆复用 vs 每次从头搜索)。LATS的价值在于探索性任务——当你不确定解决方案空间的结构时,系统化搜索比记忆复用更有效。

跨栈融合的实践模式

生产环境中,纯用单一栈的情况越来越少。2026年的主流实践是混合栈:

模式A:Reflexion + PRM(记忆+验证)。Reflexion负责跨episode的记忆积累,PRM负责episode内的逐步质量把关。在WebShop实验中,这种组合比单独Reflexion高出4个百分点,比单独PRM高出2个百分点。

模式B:Self-Refine + 外部信号(轻量级安全网)。在每轮Self-Refine之间插入外部验证(如语法检查、类型检查),确保Refinement不会引入新的错误。成本只有纯Reflexion的1/3,在代码生成场景下成功率接近Reflexion。

模式C:不确定性触发 + PRM(按需验证)。Agent先估计自己的置信度,低于阈值时才调用PRM做逐步验证。这是2026年成本效益最优的模式——平均Token消耗只有纯PRM的30-40%,但成功率只低1-2%。


从基准到生产的七层落差

层次 基准环境 生产环境 差距来源
评估信号 完美Oracle 不完美/延迟 外部验证器本身可能有bug
任务分布 已知/固定 未知/漂移 Reflexion记忆过时
延迟约束 无 秒-分钟级 LATS/PRM不可用
成本约束 无 严格预算 Best-of-64不可承受
错误代价 均匀 不对称 "多改错一次"可能损失巨大
并行度 无限 受限 PRM并行度打折
干扰因素 无 多租户/噪声 记忆检索质量下降

这张表揭示了一个残酷的现实:论文中报告的91-98%成功率,到了生产环境通常会打个7-8折。在SWE-bench上Reflexion报告的数字在生产代码库上的实际表现大约只有论文数字的75-85%。这不是论文造假,而是基准环境和生产环境的结构性差异。


面向不同场景的推荐方案

场景 推荐栈 理由
代码生成(有测试) Stack 1 + 外部测试信号 测试通过即正确,无需复杂自纠
技术文档写作 Stack 2 Self-Refine 结构化批评对写作质量提升显著
探索式数据分析 Stack 3 Reflexion 跨query记忆复用价值高
金融/医疗决策 Stack 5 PRM 高价值决策值得高成本验证
客服对话(实时) 不确定性触发 + Stack 2 延迟敏感,只能轻量级自纠
复杂工具编排 Stack 4 ToolTree 工具选择空间大,MCTS系统探索
离线批量处理 Stack 3 + Stack 5 混合 延迟不敏感,精度优先
创意内容生成 Stack 2 + 人类偏好模型 主观质量需要偏好信号

参考来源

  1. Large Language Models Cannot Self-Correct Reasoning Yet (ICLR 2024) — Huang等人关于内在自纠悖论的开创性论文
  2. Agent Self-Correction: From Reflexion to Process Reward Models (Zylos, 2026) — 自纠范式从Reflexion到PRM的演进综述
  3. AgentPRM: Process Reward Models for LLM Agents (WWW 2026) — 步级Promise-Progress过程奖励模型
  4. ToolTree: Efficient LLM Agent Tool Planning via Dual-Feedback MCTS (ICLR 2026) — MCTS在工具规划中的应用
  5. ReWOO: Decoupling Reasoning from Observations (arXiv 2023) — 无观察推理的Token节省范式
  6. Agent Self-Correction Benchmarks 2026 (AgentMarketCap) — 2026年自纠基准量化分析
  7. Uncertainty-Calibrated Self-Correction Loops (Curve Labs, 2026) — 不确定性校准自纠的前沿研究

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入