本文提出LLM代理可以通过自动收集和选择自身在序列决策任务中的成功轨迹作为上下文示例,显著提升性能,减少对人工知识工程的依赖。
Large Language Model, Sequential Decision-Making, In-Context Learning, Self-Generated Examples, Trajectory Database, Performance Optimization
Vishnu Sarukkai, Zhiqiang Xie, Kayvon Fatahalian
Stanford University
Generated by gemini-2.5-flash-preview-04-17
Background Problem
在为序列决策任务构建大型语言模型(LLM)代理时,通常需要大量的人工知识工程投入,例如细致的提示词调优、人工编写的上下文示例,或者定制化的观察空间和行动空间。代理的性能往往与投入的人工努力成正比。这种对人工干预的依赖限制了代理的自主性和可扩展性。
本文的出发点是探索一种替代路径:如何使LLM代理能够自主地通过利用自身的成功经验来提升性能,而不是依赖于任务特定的人工知识工程。核心问题在于如何构建和优化一个由代理自身生成的成功轨迹组成的数据库,以便在面对新任务时,代理能够从中检索出最相关和最有效的经验作为上下文示例,从而提高决策的成功率。
Method
本文提出了一种通过自动构建和优化自身成功经验数据库来提升LLM代理在序列决策任务中表现的方法。核心思想是让代理从其在训练任务中成功的轨迹(trajectory)中学习,并将这些轨迹作为后续任务的上下文示例(in-context examples)进行检索。
具体方法包括:
- Traj-Bootstrap(轨迹自举): 最基础的方法,简单地收集代理在训练任务中成功完成的轨迹,并将其添加到数据库D中。这形成了一个正向反馈循环:成功的例子帮助代理解决新任务,从而产生更多成功的例子。只存储成功的轨迹,过滤掉失败的尝试。
- +DB-Selection(数据库级别选择): 针对Traj-Bootstrap性能波动大的问题,引入了类似群体训练(population-based training)的策略。维护N个独立的数据库实例,每个实例由一个代理独立积累成功轨迹。定期(例如,每尝试一定数量的任务后)评估这些数据库在最近任务上的表现,用表现最好的数据库的副本替换表现最差的数据库。这种方法旨在识别和传播具有良好集体属性(如覆盖率、多样性、互补性)的数据库。
- +Exemplar-Selection(示例级别选择): 旨在识别和保留单个高质量的轨迹示例,即使它们来自整体表现不佳的数据库。引入了一个检索加权的质量度量 来量化每个轨迹对成功结果的贡献: 其中 是轨迹 被检索的任务集合, 是任务 的二元结果(成功为1,失败为0), 是轨迹 在任务 期间的检索频率。该度量衡量轨迹在被检索时与成功结果关联的频率。构建一个复合数据库,只包含在训练任务中根据此度量选择出的最高质量的轨迹。
代理架构基于ReAct风格,包含规划(LLMplan)、推理(LLMreason)和行动(LLMact)三个阶段。检索函数Retrieve()根据当前任务目标、计划、观察或推理,从数据库D中检索最相关的k个轨迹片段作为上下文示例。检索采用多键(multi-key)和状态级别(state-level)的动态检索,并使用通用嵌入函数(all-MiniLM-L6-v2)进行相似度计算。
Experiment
实验在三个序列决策基准任务上进行评估:ALFWorld(文本冒险)、InterCode-SQL(SQL查询生成)和Wordcraft(元素合成)。
实验设置:
- 基准任务: ALFWorld (3500训练, 134测试), InterCode-SQL (800训练, 234测试), Wordcraft (4000训练, 500测试)。
- LLM: 主要使用GPT-4o-mini。
- 初始数据库: 使用少量人工提供的示例初始化数据库。
- 检索: 在每个决策步骤检索top-k(ALFWorld/InterCode-SQL k=6, Wordcraft k=10)最相似的轨迹片段。
- 评估: 报告在独立的测试集上的任务成功率,结果平均来自5个随机种子。
实验结果:
- Traj-Bootstrap: 随着训练任务数量增加,性能普遍提升。ALFWorld从0.73提升到0.89,InterCode-SQL从0.75提升到0.79,Wordcraft从0.55提升到0.64。性能提升存在边际递减效应,且不同训练试验间存在显著性能波动。
- +DB-Selection: 在ALFWorld上进一步提升性能至0.91,但在InterCode-SQL和Wordcraft上的最终提升不明显(分别为0.78和0.64)。该方法在训练早期(数据库较小时)对所有基准任务的成功率都有提升。
- +Exemplar-Selection: 在InterCode-SQL上提升至0.81,在Wordcraft上提升至0.72,在ALFWorld上也有小幅提升至0.90。使用根据质量度量选择的“最佳”轨迹构建的数据库,在ALFWorld和Wordcraft上表现优于使用“最差”轨迹构建的数据库。
与其他方法的比较:
- 与测试时多次尝试 (Pass@k) 比较: Traj-Bootstrap的性能提升相当于Fixed-DB基线在测试时尝试2-3次任务的Pass@k性能,而增强方法 (+DB/+Exemplar) 相当于尝试3-5次。这表明自举方法在不允许多次尝试或缺乏成功验证的场景下具有优势。
- 与模型升级比较: 在ALFWorld上,Traj-Bootstrap (0.89) 使用GPT-4o-mini的性能略优于使用更强大的GPT-4o的Fixed-DB基线 (0.88)。
- 与分层算法比较: 在100个训练任务下,使用GPT-4o-mini的增强方法 (0.86) 优于使用GPT-3.5-turbo+GPT-4-turbo的Autoguide (0.79)。
- 与任务特定策略比较: Traj-Bootstrap+DB-Selection (0.91) 匹配了使用更强大LLM和定制观察/行动空间的AutoManual (0.91) 的性能。
实验结果表明,自动构建轨迹数据库是提升LLM代理性能的有效途径,尤其是在减少人工知识工程方面。
Further Thoughts
本文强调了数据(成功轨迹)的数量和质量对于LLM代理性能提升的重要性,这与传统机器学习中数据驱动的范式相呼应。这提示我们,在LLM时代,除了模型架构和训练算法的进步,数据本身的收集、管理和选择仍然是提升性能的关键。
关于轨迹数据库的构建,本文提出的数据库级别和示例级别的选择策略是有效的尝试。未来的工作可以进一步探索更复杂的选择机制,例如考虑轨迹的多样性、泛化能力,或者使用强化学习等方法来学习最优的轨迹选择策略。此外,如何有效地利用失败的轨迹也是一个值得探索的方向,失败的经验可能包含重要的错误模式信息,用于指导代理避免重复错误。
本文的方法与微调(fine-tuning)不同,它不修改模型权重,而是通过改变输入(上下文示例)来影响模型行为,这使得方法具有更好的模型可移植性。未来的研究可以探讨将自举的轨迹数据用于微调或蒸馏,以进一步提升性能或创建更小的、高性能的模型。
最后,本文的发现也对LLM代理的评估提出了思考。传统的基准测试可能不足以完全捕捉代理的自学习和自适应能力。需要设计新的评估范式,能够衡量代理在面对新任务或新环境时,利用自身经验进行持续改进的能力。