Skip to content
Go back 2505.00234 arXiv logo

Self-Generated In-Context Examples Improve LLM Agents for Sequential Decision-Making Tasks

Published:  at  11:15 PM
82.23 👍

本文提出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)进行检索。

具体方法包括:

  1. Traj-Bootstrap(轨迹自举): 最基础的方法,简单地收集代理在训练任务中成功完成的轨迹,并将其添加到数据库D中。这形成了一个正向反馈循环:成功的例子帮助代理解决新任务,从而产生更多成功的例子。只存储成功的轨迹,过滤掉失败的尝试。
  2. +DB-Selection(数据库级别选择): 针对Traj-Bootstrap性能波动大的问题,引入了类似群体训练(population-based training)的策略。维护N个独立的数据库实例,每个实例由一个代理独立积累成功轨迹。定期(例如,每尝试一定数量的任务后)评估这些数据库在最近任务上的表现,用表现最好的数据库的副本替换表现最差的数据库。这种方法旨在识别和传播具有良好集体属性(如覆盖率、多样性、互补性)的数据库。
  3. +Exemplar-Selection(示例级别选择): 旨在识别和保留单个高质量的轨迹示例,即使它们来自整体表现不佳的数据库。引入了一个检索加权的质量度量 Q(τ)Q(\tau) 来量化每个轨迹对成功结果的贡献: Q(τ)=iR(τ)oifi(τ)iR(τ)fi(τ)Q(\tau) = \frac{\sum_{i \in \mathcal{R}(\tau)} o_i \cdot f_i(\tau)}{\sum_{i \in \mathcal{R}(\tau)} f_i(\tau)} 其中 R(τ)\mathcal{R}(\tau) 是轨迹 τ\tau 被检索的任务集合,oio_i 是任务 ii 的二元结果(成功为1,失败为0),fi(τ)f_i(\tau) 是轨迹 τ\tau 在任务 ii 期间的检索频率。该度量衡量轨迹在被检索时与成功结果关联的频率。构建一个复合数据库,只包含在训练任务中根据此度量选择出的最高质量的轨迹。

代理架构基于ReAct风格,包含规划(LLMplan)、推理(LLMreason)和行动(LLMact)三个阶段。检索函数Retrieve()根据当前任务目标、计划、观察或推理,从数据库D中检索最相关的k个轨迹片段作为上下文示例。检索采用多键(multi-key)和状态级别(state-level)的动态检索,并使用通用嵌入函数(all-MiniLM-L6-v2)进行相似度计算。

Experiment

实验在三个序列决策基准任务上进行评估:ALFWorld(文本冒险)、InterCode-SQL(SQL查询生成)和Wordcraft(元素合成)。

实验设置:

实验结果:

与其他方法的比较:

实验结果表明,自动构建轨迹数据库是提升LLM代理性能的有效途径,尤其是在减少人工知识工程方面。

Further Thoughts

本文强调了数据(成功轨迹)的数量和质量对于LLM代理性能提升的重要性,这与传统机器学习中数据驱动的范式相呼应。这提示我们,在LLM时代,除了模型架构和训练算法的进步,数据本身的收集、管理和选择仍然是提升性能的关键。

关于轨迹数据库的构建,本文提出的数据库级别和示例级别的选择策略是有效的尝试。未来的工作可以进一步探索更复杂的选择机制,例如考虑轨迹的多样性、泛化能力,或者使用强化学习等方法来学习最优的轨迹选择策略。此外,如何有效地利用失败的轨迹也是一个值得探索的方向,失败的经验可能包含重要的错误模式信息,用于指导代理避免重复错误。

本文的方法与微调(fine-tuning)不同,它不修改模型权重,而是通过改变输入(上下文示例)来影响模型行为,这使得方法具有更好的模型可移植性。未来的研究可以探讨将自举的轨迹数据用于微调或蒸馏,以进一步提升性能或创建更小的、高性能的模型。

最后,本文的发现也对LLM代理的评估提出了思考。传统的基准测试可能不足以完全捕捉代理的自学习和自适应能力。需要设计新的评估范式,能够衡量代理在面对新任务或新环境时,利用自身经验进行持续改进的能力。



Previous Post
LIFT: Improving Long Context Understanding of Large Language Models through Long Input Fine-Tuning
Next Post
Codenames as a Benchmark for Large Language Models