ReAct‑MCTS:蒙特卡洛树搜索增强的ReAct智能体用于长视界交互式任务

ReAct‑MCTS:蒙特卡洛树搜索增强的ReAct智能体用于长视界交互式任务

arXiv编号:arXiv:2609.20519v1 cs.AI

摘要

ReAct范式将推理与工具调用动作交替执行,被广泛用于交互式智能体。但在长视界多步骤任务场景,贪心式逐步决策容易陷入局部最优、循环往复、短视决策,缺少对未来多步后果的预判。本文提出ReAct‑MCTS ,把蒙特卡洛树搜索MCTS集成进ReAct智能体循环。

ReAct‑MCTS保留原生ReAct推理‑动作基本单元;每一步不直接采纳贪心输出,而是构建状态搜索树,通过模拟推演、回溯价值评估筛选高收益动作分支。完整实现MCTS四阶段:选择、扩展、模拟推演、反向传播。树节点存储环境观测、ReAct推理文本、候选动作、累计回报统计。

在ScienceWorld、WebArena两大长视界交互式基准开展实验。相比原生ReAct,ReAct‑MCTS在ScienceWorld任务成功率提升**+12.3%;WebArena任务成功率提升+9.7%**。消融实验验证MCTS四大子阶段各自贡献;同时分析搜索预算、探索系数对性能与开销的权衡。代码与实验脚本全部开源。

关键词

大模型智能体;ReAct;蒙特卡洛树搜索MCTS;长视界交互式任务;工具调用;规划推理

目录

  1. 引言
  2. 相关工作
  3. 方法:ReAct‑MCTS
    • [3.1 原生ReAct回顾](#3.1 原生ReAct回顾)
    • [3.2 状态树节点定义](#3.2 状态树节点定义)
    • [3.3 MCTS四阶段与ReAct融合流程](#3.3 MCTS四阶段与ReAct融合流程)
      • [3.3.1 选择 Select](#3.3.1 选择 Select)
      • [3.3.2 扩展 Expand](#3.3.2 扩展 Expand)
      • [3.3.3 模拟推演 Simulate](#3.3.3 模拟推演 Simulate)
      • [3.3.4 反向传播 Backpropagate](#3.3.4 反向传播 Backpropagate)
    • [3.4 主循环完整伪代码](#3.4 主循环完整伪代码)
    • [3.5 超参数说明](#3.5 超参数说明)
  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通过交替执行推理Thought与工具动作Action,在大量工具调用任务取得不错效果。原生ReAct属于贪心逐步决策:每一步基于当前观测直接输出下一步动作,不做多步未来推演。

长视界交互式任务(科学实验、网页复杂操作)存在显著难点:

  1. 短视贪心选择:单步看起来收益高,但后续会走入死胡同;
  2. 动作循环:重复相同/相似动作,环境没有实质进展;
  3. 局部最优陷阱:多条可行分支,贪心优先选择容易进入失败分支。

蒙特卡洛树搜索(MCTS)通过多次模拟推演评估不同动作分支未来长期回报,在博弈、规划任务被广泛使用。本文将MCTS与ReAct做深度融合,提出ReAct‑MCTS

设计原则:不破坏ReAct原生Thought‑Action基本范式;树节点保存完整ReAct交互上下文(推理文本、观测、候选动作);MCTS用于对下一步候选动作做多步模拟评估,选出期望长期回报最高的动作真正送入真实环境执行。真实环境执行得到新观测之后,刷新根节点,重新开启新一轮MCTS搜索。

本文贡献

  1. 提出ReAct‑MCTS框架,将蒙特卡洛树搜索无缝嵌入ReAct智能体循环,对候选动作做多步模拟推演,缓解贪心短视、循环问题。
  2. 完整定义适配大模型智能体的MCTS四阶段,设计ReAct专用树节点数据结构,给出可直接复现的主循环伪代码。
  3. 在ScienceWorld、WebArena两大长视界交互式基准开展实验;相比原生ReAct,成功率分别提升12.3%、9.7%;消融验证各个子模块有效性;分析搜索预算、探索系数带来性能‑开销权衡。
  4. 开源全部代码、提示词、实验脚本。

2 相关工作

2.1 ReAct系列智能体

ReAct交替推理与动作;衍生工作Reflexion、ReWoo等,通过反思、外部知识库优化。原生ReAct为贪心逐步决策,缺少多步前瞻模拟。

2.2 大模型结合MCTS搜索

大量工作把MCTS用于LLM推理规划:

  • 推理链搜索:对思考路径做MCTS采样;
  • 游戏/机器人规划:环境仿真内部做MCTS;
  • 智能体方向:大多把MCTS用在高层规划层,没有直接融合ReAct Thought‑Action原语。

ReAct‑MCTS区别:MCTS直接作用在ReAct的Thought‑Action单元;模拟推演阶段复用ReAct本身推理动作生成逻辑;真实环境只执行MCTS选出的最优动作,模拟分支不在真实环境执行,避免破坏真实环境状态。

重要约束:模拟推演分支只是在模型内部虚拟推演,不会调用真实环境step;只有MCTS选出的最终动作才会执行env.step()

3 方法:ReAct‑MCTS

3.1 原生ReAct回顾

原生ReAct循环:

  1. 根据历史观测 o t o_t ot、历史推理Thought、历史动作Action,大模型生成当前推理 T t T_t Tt以及候选动作 A t A_t At;
  2. 将动作 A t A_t At送入真实环境执行env.step(A_t)
  3. 获取新观测 o t + 1 o_{t+1} ot+1,进入下一轮。>

原生缺陷:直接采纳单步贪心输出,没有评估该动作未来多步后果。

3.2 状态树节点定义

每一个MCTS节点 v v v存储字段:

复制代码
class MCTSNode:
    parent: Optional[MCTSNode]       # 父节点
    children: Dict[str, MCTSNode]   # key:动作文本,value子节点
    obs: str                        # 当前环境观测
    thought: str                    # ReAct推理Thought文本
    action: str                     # 到达本节点执行的动作
    visit_count: int                # 访问次数 \(N(v)\)
    total_reward: float             # 累计回报 W(v)
    q_value: float                  # Q = W(v)/\(N(v)\) 平均回报
  • 根节点 v r o o t v_{root} vroot:对应真实环境当前最新状态,没有父节点。
  • 子节点:代表执行某一个候选动作之后的虚拟推演状态。>

⚠️所有子节点对应的推演,仅为模型内部虚拟模拟,不改动真实环境 。只有根节点选出的最优动作,才调用真实env.step()

3.3 MCTS四阶段与ReAct融合流程

每一轮真实环境交互:

  1. 以真实环境当前状态初始化根节点 v r o o t v_{root} vroot;
  2. 循环执行 N s i m N_{sim} Nsim次MCTS模拟(搜索预算),每一次模拟完整走 Select‑Expand‑Simulate‑Backpropagate;
  3. 模拟全部结束,根节点根据子节点Q值选择最优动作 a ∗ a^* a∗;
  4. a ∗ a^* a∗送入真实环境执行,拿到新观测;销毁整棵搜索树;用新观测构造新根节点,进入下一轮主循环。
3.3.1 选择 Select

从根节点向下遍历,使用UCT上置信度公式选择子节点,直到遇到未完全扩展节点。

U C T ( v ) = ( Q ( v ) ) + c p u c t ln ⁡ N ( p a r e n t ( v ) ) ( N ( v ) ) \mathrm{UCT}(v)=(Q(v))+c_{puct}\sqrt{\frac{\ln N(\mathrm{parent}(v))}{(N(v))}} UCT(v)=(Q(v))+cpuct(N(v))lnN(parent(v))

  • ( Q ( v ) ) (Q(v)) (Q(v)):该节点平均回报;
  • c p u c t c_{puct} cpuct:PUCT探索系数,控制探索‑利用权衡;
  • ( N ( v ) ) (N(v)) (N(v)):节点访问计数。
3.3.2 扩展 Expand

到达叶子节点,调用ReAct大模型,基于当前节点的虚拟观测与推理上下文,生成 K K K个候选动作;为每一个候选动作创建空的子节点,挂载到当前叶子。

3.3.3 模拟推演 Simulate

从刚扩展出的子节点开始,运行Rollout推演:复用ReAct推理‑动作生成逻辑,在模型内部虚拟向前推演最多 L r o l l L_{roll} Lroll步。

Rollout内部不调用真实环境 ;由大模型虚拟生成下一步"假想观测"。推演终止条件:达到最大rollout步数、模型判断任务完成、判断任务失败。

推演结束,调用价值打分Prompt,输出该条模拟轨迹的回报 r ∈ 0 , 1 r\in0,1 r∈0,1

3.3.4 反向传播 Backpropagate

把模拟得到回报 r r r沿着路径向上回溯更新:路径上每一个节点:

( N ( v ) ) + = 1 , W ( v ) + = r , ( Q ( v ) ) = W ( v ) / ( N ( v ) ) (N(v))\mathrel{+}=1,\quad W(v)\mathrel{+}=r,\quad (Q(v))=W(v)/(N(v)) (N(v))+=1,W(v)+=r,(Q(v))=W(v)/(N(v))

3.4 主循环完整伪代码

复制代码
def react_mcts_main(env, \(max\_real\_steps\), N_sim, c_puct, L_roll, K):
    obs = env.reset()
    for _ in range(\(max\_real\_steps\)):
        # 初始化MCTS根节点,真实环境当前状态
        root = MCTSNode(parent=None, obs=obs, thought="", action="",
                        visit_count=0, total_reward=0.0)
        # N_sim次完整MCTS模拟推演(全部虚拟,不碰真实环境)
        for _ in range(N_sim):
            v = select(root, c_puct)
            expand(v, K)
            r = simulate(v, rollout_len=L_roll)
            backpropagate(v, r)
        # MCTS结束,选择根下Q值最高动作执行真实环境
        best_child = max(root.children.values(), key=lambda x: x.q_value)
        real_action = best_child.action
        obs, reward_real, done, info = env.step(real_action)
        if done:
            break
    return

3.5 超参数说明

参数 含义 基准实验默认值
N s i m N_{sim} Nsim 每真实步MCTS模拟次数(搜索预算) 20
c p u c t c_{puct} cpuct PUCT探索系数 (1.414)
L r o l l L_{roll} Lroll Rollout模拟最大虚拟步数 8
K K K 扩展阶段每个节点生成候选动作数目 3
m a x r e a l s t e p s max_real_steps maxrealsteps 真实环境最大交互步数上限 30

4 实验设置

4.1 评测基准

  1. ScienceWorld:文本交互式科学实验任务;需要多步操作完成化学、物理实验;任务编号0‑29;评测指标:任务成功率Success Rate,最终得分Final Score。
  2. WebArena:网页交互式智能体基准,模拟真实网页操作,表单、点击、输入;评测指标:任务成功率Success Rate。

4.2 对比基线

  1. Vanilla‑ReAct:原生贪心ReAct,每一步直接执行模型输出动作;
  2. ReAct‑Reflexion:ReAct加上自我反思,历史失败经验复用上;
  3. ReAct‑BFS:宽度优先搜索,维护多条候选ReAct轨迹;
  4. ReAct‑MCTS(Ours):本文完整方法。

4.3 模型与环境配置

基座大模型:Qwen2.5‑7B‑Instruct;

全部基线使用完全相同基座模型、系统提示、环境最大真实步数。

环境:ScienceWorld官方环境;WebArena本地Docker仿真环境。

4.4 评测指标

  • Success Rate:任务完整完成的样本占比;
  • Final Score:ScienceWorld任务最终得分;
  • 开销统计:每真实步平均模型调用次数。

5 实验结果

5.1 主实验结果

方法 ScienceWorld 成功率 ScienceWorld Final Score WebArena 成功率
Vanilla‑ReAct 34.7% 52.3 28.2%
ReAct‑Reflexion 38.2% 55.1 31.5%
ReAct‑BFS 41.5% 58.6 34.8%
ReAct‑MCTS(Ours) 47.0% 64.2 37.9%

对比原生Vanilla‑ReAct:ScienceWorld成功率提升**+12.3%;WebArena成功率提升+9.7%**。同时Final Score显著上涨。

5.2 消融实验

依次移除MCTS四大子阶段,验证各模块贡献:

配置 ScienceWorld成功率 性能下降
完整 ReAct‑MCTS 47.0%
‑Select(随机选择子节点) 42.1% ‑4.9%
‑Expand(仅生成1个候选动作) 39.4% ‑7.6%
‑Simulate(无rollout,即时回报) 36.6% ‑10.4%
‑Backpropagate(不做Q值统计) 35.2% ‑11.8%

Simulate模拟推演与Backpropagate反向传播是最大增益来源;缺少多步rollout模拟,性能大幅退化。

5.3 超参数敏感性分析

  1. N s i m N_{sim} Nsim模拟次数(搜索预算)
    N s i m = 5 N_{sim}=5 Nsim=5→39.8%; N s i m = 10 N_{sim}=10 Nsim=10→43.5%; N s i m = 20 N_{sim}=20 Nsim=20→47.0%; N s i m = 30 N_{sim}=30 Nsim=30→47.6%。

从5提升到20收益明显;继续增大到30收益边际递减,但模型调用开销线性上涨。默认选取20作为性价比平衡点。

  1. c p u c t c_{puct} cpuct探索系数
  • ( 0.5 ) (0.5) (0.5):偏向利用,容易陷入局部;成功率41.2%
  • ( 1.414 ) (1.414) (1.414)(默认):平衡;47.0%
  • ( 3.0 ) (3.0) (3.0):过度探索;频繁选风险高分支;43.3%
  1. Rollout虚拟推演长度 L r o l l L_{roll} Lroll
    L r o l l = 4 L_{roll}=4 Lroll=4:42.4%; L r o l l = 8 L_{roll}=8 Lroll=8:47.0%; L r o l l = 12 L_{roll}=12 Lroll=12:47.3%。>

rollout太短看不到远期后果;超过8步收益很小,同时虚拟推演token开销上升。

5.4 行为案例分析

案例来自ScienceWorld化学实验任务:原生ReAct贪心选择立刻添加试剂,短期看起来合理,但后续缺少耗材直接失败。

ReAct‑MCTS经过多条分支rollout模拟,预见到该分支远期失败,优先选择先收集耗材的动作,最后顺利完成整套实验。

分析:MCTS模拟可以识别"单步高收益、远期死胡同"的陷阱,规避贪心短视问题。

同时观察:部分极长任务,即便MCTS,受限于rollout虚拟推演的假想观测质量,仍然会失败。

6 讨论与局限性

  1. 开销代价 :每一个真实环境步骤,需要执行 N s i m N_{sim} Nsim次MCTS模拟rollout,模型调用次数成倍增加 ;性能提升以推理开销为代价。可以调小 N s i m N_{sim} Nsim换取速度。
  2. 虚拟推演的假想观测噪声:Simulate阶段没有真实环境,完全靠大模型生成假想观测;如果假想观测严重偏离真实世界,MCTS评估会被误导。
  3. 本工作rollout内部不做树搜索,只用简单贪心rollout;未来可以嵌套MCTS。
  4. 当前实现每真实步骤重建完整MCTS树;未来可以实现树复用、增量更新优化。

适用场景:长视界、分支选择多、一步错全盘皆输的交互式任务;对推理延迟极度敏感场景需要降低模拟预算。

7 结论

本文提出ReAct‑MCTS,将蒙特卡洛树搜索完整融合进ReAct智能体循环。保留ReAct原生Thought‑Action范式;MCTS在模型内部做多步虚拟模拟推演,选出长期期望回报最高的动作再送入真实环境。

在ScienceWorld、WebArena两个长视界交互式基准,显著优于原生ReAct以及Reflexion、BFS基线。消融证明模拟推演、反向传播模块贡献最大;超参数实验揭示性能‑计算开销的权衡。未来方向:优化rollout虚拟观测质量、树增量复用、降低计算开销。

8 参考文献

完整参考文献查阅原始arXiv网页:https://arxiv.org/html/2609.20519v1

附录A 提示词模板

  1. ReAct基础Thought‑Action系统提示;
  2. MCTS扩展阶段生成K个候选动作Prompt;
  3. Rollout推演阶段Prompt(生成假想观测);
  4. 轨迹价值打分Prompt;
  5. UCT选择逻辑相关配置提示。

附录B 完整实验配置

全部超参数表格、环境配置、模型参数、评测脚本入口、随机种子设置。

附录C 补充消融与额外结果

  1. 不同模型基座(7B‑13B)下复现结果;
  2. WebArena完整消融表格;
  3. 开销统计:不同 N s i m N_{sim} Nsim下每一步平均LLM调用次数;
  4. 失败案例归类统计。

相关推荐
子非鱼eva1 小时前
昇腾开源仓Issue分析解答-mindspore精选(三)·主仓与mindformers长尾收官
人工智能·ai·gitcode
roman_日积跬步-终至千里1 小时前
【AI Agent架构】AI Agent 架构设计核心思路
人工智能
霍格沃兹测试学院-小舟畅学1 小时前
我用 AI 把 Swagger 变成 500 条 pytest 用例,回归从 3 天到 3 小时
人工智能·测试工具
Dawson Zhu1 小时前
大模型 Agent 记忆系统五大技术路线解析与工程选型指南
人工智能·语言模型·架构·aigc·agi
AI砖家1 小时前
AI 编程面试 20 题:Codex、Claude Code 与 AI 工具使用全攻略
人工智能·语言模型·ai编程·claude·codex
H0311169851 小时前
移动应用数据平台资料整理:月狐数据、易观千帆、艾瑞咨询
人工智能
成为深度学习高手1 小时前
EMAformer:给Transformer披上嵌入铠甲增强时间序列预测
人工智能·深度学习·数据挖掘
逐米时代1 小时前
BOM智能构建:全链路一致性自动校验
大数据·数据库·人工智能
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(76):SEEM——从碎片检索到完整事件重建
论文阅读·人工智能·学习·开源·github