Skip to content

智能体推理能力论文

智能体(Agent)需要超越简单的指令执行,具备规划、推理、反思和工具使用等高级认知能力。本文梳理智能体推理能力的论文进展,从 ReAct 到 Reflexion 再到树搜索规划。

智能体推理

智能体推理的核心维度

智能体推理包含多个相互关联的维度:

维度描述代表工作
行动推理决定采取什么行动ReAct
反思推理评估和修正行动结果Reflexion
规划推理制定多步骤行动计划Tree of Planning
工具推理选择和使用合适工具Toolformer
社交推理与其他智能体协作CAMEL

ReAct:推理+行动

Yao et al. (2022) 提出的 ReAct 框架将推理和行动交织:

python
class ReActAgent:
    """ReAct 智能体:推理与行动交替"""
    def __init__(self, llm, tools):
        self.llm = llm
        self.tools = tools

    def run(self, question, max_steps=10):
        trajectory = []
        for step in range(max_steps):
            # 思考:推理当前状态
            thought = self.llm.generate(
                f"问题:{question}\n轨迹:{trajectory}\n思考:"
            )
            trajectory.append(f"思考{step+1}{thought}")

            # 行动:选择并执行工具
            action = self.llm.generate(
                f"问题:{question}\n轨迹:{trajectory}\n行动:"
            )
            tool_name, tool_input = self.parse_action(action)

            if tool_name == "finish":
                return tool_input

            observation = self.tools[tool_name](tool_input)
            trajectory.append(f"行动{step+1}{tool_name}({tool_input})")
            trajectory.append(f"观察{step+1}{observation}")

        return self.llm.generate(f"基于轨迹给出最终答案:{trajectory}")

Reflexion:自我反思

Shinn et al. (2023) 的 Reflexion 让智能体从失败中学习:

  1. 执行任务,如果失败则进行反思
  2. 反思生成语言反馈,指出失败原因
  3. 将反思存入记忆,指导后续尝试
  4. 多次尝试直到成功或达到上限

规划与搜索

LLM 规划

智能体需要将复杂目标分解为可执行的子目标:

  • HuggingGPT:LLM 作为控制器,调度专家模型
  • Voyager:在 Minecraft 中自动发现和执行技能
  • Tree of Planning:树搜索式的多步规划

蒙特卡洛树搜索

将 MCTS 应用于 LLM 规划:

python
class MCTSPlanner:
    """LLM + MCTS 规划"""
    def __init__(self, llm, reward_fn, num_simulations=50):
        self.llm = llm
        self.reward_fn = reward_fn
        self.num_simulations = num_simulations

    def plan(self, initial_state, goal):
        root = Node(state=initial_state)
        for _ in range(self.num_simulations):
            node = self.select(root)
            if not node.is_terminal:
                children = self.expand(node, goal)
                value = self.simulate(node, goal)
            self.backpropagate(node, value)
        return self.best_action(root)

推理与行动的平衡

纯推理(CoT)不与外部环境交互,纯行动(直接执行)缺乏深思熟虑。ReAct 的关键洞察是推理和行动应该交替进行——推理指导行动,行动的观察反馈给推理。

工具使用推理

智能体需要推理何时使用工具、使用哪个工具:

  • Toolformer:模型自主学习何时调用 API
  • Gorilla:训练 LLM 使用数千个 API
  • ToolLLM:大规模工具使用评估

相关资源

最近更新