SwiftSage: A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks

NeurIPS 2023 (spotlight)

方法

问题建模 (Problem Formulation)

在交互式环境(如 ScienceWorld)中,智能体在初始时刻 $t=0$ 会获得任务描述 $D$ 和初始环境状态 。在每个时间步 $t$,智能体需要生成一个动作 $A_t$ 。随后,环境会返回四个维度的反馈:

  • 观察 ($O_t$):动作对环境产生的直接影响或查询到的信息 。
  • 环境 ($E_t$):智能体当前所在房间及可见物品的信息 。
  • 物品栏 ($I_t$):智能体目前收集到的物品列表 。
  • 得分 ($S_t$):范围在 0100 之间的累积奖励分数 。

SWIFT 模块:基于模仿学习的快速思维

SWIFT 模块代表 System 1,主要用于快速、直觉式的关联推理 。

  • 模型基础:使用参数量较小的编码器-解码器语言模型(作者选用 7.7 亿参数的 T5-large 模型)进行离线行为克隆(Behavior Cloning)训练 。

  • 长期历史状态表示:为了克服传统方法只能参考单步历史的缺陷,SWIFT 引入了滑动窗口机制,将过去 $K=10$ 个时间步的动作、观察和奖励作为输入上下文 。其输入序列的数学化构建格式如下:

    “Task: $D$; Time: $t-1$; Score: $S_{t-1}$; Action history: $[A_{t-i}(+R_{t-i})\rightarrow O_{t-i} \text{ | } i \text{ loops from } K \text{ to } 1]$; Current room: $E_{t-1}$; Inventory: $I_{t-1}$; Visited rooms: ${E_1^,…,E_{t-1}^}$”

    其中,$R_t$ 表示在时间步 $t$ 获得的即时奖励,公式为 $R_t = S_t - S_{t-1}$ ,$E_t^*$ 代表在时刻 $t$ 所在的地点名称 。

    为了防止序列到序列(seq2seq)学习中的数据不平衡偏差,研究者对训练数据中的特定任务和动作进行了下采样(Down-sampling)。

SAGE 模块:基于 LLM 提示的深思熟虑

SAGE 模块代表 System 2,专门处理需要泛化规划、子目标追踪和异常处理的复杂情况 。该模块使用如 GPT-4 这样的大语言模型(LLM),并被设计为两个连续的提示(Prompting)阶段 :

规划阶段 (Planning Stage)

系统将任务描述、动作历史($A_{<t}$ 和 $O_{<t}$)以及当前环境 $E_{t-1}$ 压缩后输入给 LLM ,并要求其在一次输出中回答五个关键问题:

  • Q1 (定位物品):需要收集哪些物品及其可能的位置?
  • Q2 (追踪物品):还有哪些物品尚未收集?
  • Q3 (规划子目标):为了高效完成任务,需要实现哪些重要的子目标?
  • Q4 (追踪进度):目前已经完成了哪些子目标,现在应该专注于哪一个?
  • Q5 (处理异常):是否犯了阻碍下一步的错误?如果有,该如何修复?

落地阶段 (Grounding Stage)

由于 LLM 生成的宏观计划无法直接在环境中执行,这一阶段负责将计划转化为具体动作 。

  • 动作模板约束:向 LLM 展示环境中支持的动作类型及其规范格式(例如 POUR (X, Y): pour object X into container Y)。
  • 生成动作缓冲区:结合过去 10 步的历史记录以及规划阶段输出的 Q1-Q5 答案 ,提示 LLM 将下一个子目标转化为一个动作序列,而不是单一动作 。这个由 LLM 生成的动作缓冲区在数学上表示为 $B = {\hat{A}t, \hat{A}{t+1}, \dots}$ 。

模块整合与切换算法 (Integration Algorithm)

SWIFTSAGE 使用一种启发式算法来动态控制两个模块的激活状态 。系统在初始阶段默认使用高效的 SWIFT 模块 ,但当满足以下任意一个触发条件时,将立刻切换到 SAGE 模式:

  1. 陷入停滞 (Stuck):过去连续 $K=5$ 个时间步的累积奖励为 0,即:

    $$\sum_{i=t-5}^{t-1} R_i = 0$$

  2. 动作无效 (Invalid):SWIFT 预测的下一个动作 $A’_t$ 在当前环境中不合法 。

  3. 关键决策 (Critical):预测的动作 $A’_t$ 涉及关键性决策(例如提交最终的实验结果)。

  4. 遭遇异常 (Unexpected):对 $A’_t$ 的观察结果表明环境中出现了意外或异常(如设备损坏)。

一旦切换至 SAGE 模块,系统会生成动作缓冲区 $B$ 并按顺序尝试执行其中的动作 。当缓冲区被清空(即 $B = \emptyset$)或缓冲区内动作导致连续失败时,智能体会再次切换回快速的 SWIFT 模块。


SwiftSage: A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks
https://lijianxiong.space/2026/20260425/
作者
LJX
发布于
2026年4月25日
许可协议