我一直在思考思维树之后下一步是什么——如果你可以搜索推理步骤,为什么不也搜索行动呢?这正是LATS(语言智能体树搜索)所做的,也是我现在阅读它的原因。这篇由Andy Zhou、Kai Yan、Michal Shlapentokh-Rothman、Haohan Wang和Yu-Xiong Wang撰写的论文(ICML 2024,arXiv:2310.04406)是目前对推理、行动和规划在一个统一智能体框架中最清晰的综合,其结果确实难以忽视。
论文内容
LATS解决的核心问题是先前智能体工作中的结构性缺口。ReAct将推理和行动交织在一起,但当轨迹出错时,它没有机制来逆转并尝试另一条路径。思维树支持对推理步骤进行分支,但基于内部语言模型知识运作——它无法在搜索过程中调用工具或接收外部反馈。Reflexion增加了口头自我纠正,但其线性重试循环在没有探索替代方案的情况下就承诺了一条新轨迹。LATS将这三个想法与一个合适的蒙特卡洛树搜索(MCTS)主干融合,使LLM智能体能够探索多个分支、接收真实环境反馈,并在路径失败时回溯。
技术机制是一个六步MCTS循环:选择(通过UCT公式选择下一个要探索的节点)、扩展(从语言模型中采样n个候选行动)、评估(用混合价值函数为每个节点打分)、模拟(推演到终态)、反向传播(更新祖先节点的值),以及反思(失败时,生成出错内容的语言摘要并将其存储为上下文)。价值函数值得关注:V(s) = λ·LM(s) + (1−λ)·SC(s),其中LM(s)是语言模型在接收环境反馈后对轨迹质量的自身估计,而SC(s)是基于该行动在兄弟节点中被采样频率的自我一致性分数。这不是一个训练过的奖励模型——价值函数完全由提示驱动。
关键观点
- 在HumanEval上,GPT-4 + LATS达到92.7%的pass@1,而GPT-4 + Reflexion为91.0%,GPT-3.5 + ReAct单独为56.9%。GPT-3.5 + LATS跃升至83.8%。
- 在HotPotQA上,LATS(CoT + ReAct)达到0.71的精确匹配分数,而ReAct基线为0.32——将多跳准确率提高了一倍以上。
- 在WebShop(网页导航和购买)上,LATS得分75.9(38.0%成功率),而Reflexion为64.2(35.0%)——在一个需要跨多个页面管理状态的任务上这是一个显著的差距。
- 在24点游戏(纯推理谜题)上,LATS达到0.44的成功率,而ToT为0.20,尽管使用了相同的GPT-4主干。
- 令人惊讶的是,LATS找到解决方案所扩展的节点更少(在HotPotQA上平均66.65个 vs. 84.05个节点,k=50),使用的令牌也更少(173,290 vs. 210,215),尽管理论上它看起来更昂贵。
哪些有效——哪些无效
基准数字是真实的,框架在概念上也是清晰的。UCT公式为探索与利用提供了有原则性的权衡,这是ToT临时的BFS/DFS所缺乏的。将外部环境反馈整合到价值函数中——而不是纯粹依赖语言模型内省——是正确的一步,结果也证明了这一点。
但论文中包含了一个作者承认但没有充分压力测试的关键假设:**LATS要求能够将环境恢复到先前状态。**没有检查点机制,就无法对树进行分支——一旦采取行动,你就被绑定了。作者指出,对于语言模型任务,这通常可以通过"复制粘贴历史文本输入"来管理,但对于真实的行动环境(数据库、文件系统、有副作用的API),这是一个许多生产系统无法满足的硬性要求。WebShop的结果虽然优于基线,但表明在复杂环境中,自我反思倾向于变得泛泛而谈而非具体——智能体可能会停滞并重复表面不同但结构相同的错误。论文提到了这一点,但没有提供解决方案。
此外,也没有隔离MCTS结构贡献与价值函数设计的消融实验。一个更简单的分支方法配合相同的混合价值函数可能就能缩小大部分差距,而作者没有直接测试这一点。
为什么这对金融AI很重要
Beancount账本几乎是一个适合LATS风格树搜索的理想环境,主要原因有一个:**每个账本都由git仓库支持。**状态回滚要求——这个让LATS在许多真实场景中不切实际的硬约束——可以通过git checkout或git stash轻松满足。一个写回智能体可以在多个分支上提出候选日记账条目,根据资产负债表约束(价值函数)对其进行评分,并只提交得分最高的路径。失败的分支会得到一个口头反思:"过账的条目违反了资产=负债+权益,因为账户类型被错误分类了。"
混合价值函数的设计也直接适用。对于账本智能体,LM(s)会通过语义契合度(这看起来是正确类别吗?)来评估提议的条目,而SC(s)会追踪智能体对类似历史交易分类的一致性——这是一种基于账本自身历史的自然自我一致性检查。
状态回滚是我想在金融类比上提一点反馈的地方。真实账本往往有下游效应:过账的条目触发了发票,发票又触发了付款流程。在这些情况下,LATS的假设就会失效。具体对于Beancount,账本是git控制下的纯文本文件,更改在本地发生且在任何下游触发器触发之前,假设成立——但这是一个需要明确保持的设计约束。
接下来读什么
- 无环境模型的MCTS规划:"Reasoning with Language Model is Planning with World Model"(Hao等人,2023,arXiv:2305.14992)——RAP,LATS在此基础上构建并改进。
- 语言模型价值函数泛化得如何?"Let's Verify Step by Step"(Lightman等人,2023,arXiv:2305.20050)——过程奖励模型作为基于提示价值函数的替代方案。
- 不可逆性下的安全多步规划:"Decision-Making with Language Models via Successive Prompting"(Creswell等人,2023)——一种避免状态回滚要求的更简单规划方法。





