LLM 游戏智能体论文解读:基础框架篇

本文深入解读 LLM 智能体领域的三大基础框架:ReAct、Reflexion 和 Generative Agents,分析它们的核心架构、技术创新和应用场景。


一、ReAct:推理与行动的协同

论文: Synergizing Reasoning and Acting in Language Models
会议: ICLR 2023
作者: Shunyu Yao 等 (普林斯顿大学 & Google Research)
被引用: 32次(领域内最高)

1.1 核心思想

人类智能的一个独特特征是能够无缝结合面向任务的动作与语言推理。考虑在厨房做菜的例子:

  • 在任何两个具体动作之间,我们可能用语言进行推理,以跟踪进度
  • 处理异常或根据情况调整计划
  • 认识到何时需要外部信息

ReAct 的核心理念:将智能体的动作空间扩展为 Â = A ∪ L

其中:

  • A = 原始动作空间(与环境交互)
  • L = 语言空间(思想/推理轨迹)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
┌─────────────────────────────────────────────────────────────┐
│ ReAct 工作流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 问题 ──▶ 思想1 ──▶ 动作1 ──▶ 观察1 │
│ │ │
│ ▼ │
│ 思想2 ──▶ 动作2 ──▶ 观察2 │
│ │ │
│ ▼ │
│ 思想3 ──▶ 动作3 ──▶ 答案 │
│ │
│ 思想:不影响环境,用于推理和规划 │
│ 动作:与环境交互,获取新信息 │
│ 观察:环境反馈 │
│ │
└─────────────────────────────────────────────────────────────┘

1.2 推理轨迹类型

类型 示例
问题分解 “我需要搜索x,找到y,然后找到z”
信息提取 “x于1844年创立”
常识推理 “1844 < 1989,所以x更老”
搜索重构 “也许我可以搜索/查找x来代替”
答案综合 “…所以答案是x”

1.3 实验结果

知识密集型任务 (HotpotQA, Fever):

方法 HotpotQA EM Fever Acc
CoT 29.4 56.3
Act 25.7 58.9
ReAct 27.4 60.9
ReAct + CoT-SC 35.1 64.6

决策任务 (ALFWorld, WebShop):

方法 ALFWorld WebShop
BUTLER (模仿学习) 37% -
Act 45% -
ReAct 71% +10%

1.4 成功与失败模式

类型 ReAct CoT
成功-真阳性 94% 86%
成功-假阳性 6% 14%
失败-幻觉 0% 56%
失败-推理错误 47% 16%

关键洞见

  • ReAct 的幻觉率为0%,因为可以与外部知识库交互验证
  • CoT 的主要失败模式是幻觉(56%)
  • ReAct 的主要失败是推理错误(47%),因结构约束降低了灵活性

1.5 ReAct 示例

问题: 除了Apple Remote,还有什么设备可以控制Apple Remote最初设计交互的程序?

1
2
3
4
5
6
7
8
9
10
思想1: 我需要搜索Apple Remote,找到它最初设计交互的程序
动作1: Search[Apple Remote]
观察1: Apple Remote是一个遥控器...最初设计用于控制Front Row...

思想2: Apple Remote最初设计控制Front Row。我需要搜索Front Row
动作2: Search[Front Row software]
观察2: Front Row是一个已停产的媒体中心软件...由Apple Remote或键盘功能键控制

思想3: Front Row由Apple Remote或键盘功能键控制。所以答案是键盘功能键
动作3: Finish[keyboard function keys]

二、Reflexion:语言反馈强化学习

论文: Language Agents with Verbal Reinforcement Learning
会议: NeurIPS 2023
作者: Noah Shinn 等 (Northeastern & Princeton)
被引用: 17次

2.1 核心思想

传统强化学习通过梯度更新权重学习,需要大量样本和昂贵的微调。Reflexion 提出用语言反馈替代梯度信号:

1
2
3
4
5
6
7
8
9
10
11
12
13
┌─────────────────────────────────────────────────────────────┐
│ 传统RL vs Reflexion │
├─────────────────────────────────────────────────────────────┤
│ │
│ 传统RL: │
│ 状态 ──▶ 动作 ──▶ 奖励 ──▶ 梯度更新 ──▶ 参数变化 │
│ │
│ Reflexion: │
│ 状态 ──▶ 动作 ──▶ 反馈 ──▶ 语言反思 ──▶ 记忆存储 │
│ │ │
│ └──────────────────▶ 下次尝试 │
│ │
└─────────────────────────────────────────────────────────────┘

2.2 三大核心组件

Actor(执行者)

基于 LLM 构建,生成文本和动作。可以是:

  • Chain of Thought (CoT)
  • ReAct
  • 其他智能体架构

Evaluator(评估者)

评估 Actor 生成输出的质量:

  • 精确匹配(EM)评分: 推理任务
  • 预定义启发式: 决策任务
  • LLM作为评估者: 编程任务

Self-Reflection(自我反思)

核心创新:将稀疏奖励信号转化为详细的语言化反思

1
2
3
4
5
6
7
8
9
10
输入: 
- 任务描述
- 失败轨迹: [动作1, 观察1, 动作2, 观察2, ...]
- 奖励信号: 二元或标量
- 历史反思

输出:
- 错误诊断
- 改进方案
- 具体建议

2.3 记忆机制

类型 内容 作用
短期记忆 当前轨迹历史 即时决策
长期记忆 自我反思输出(滑动窗口) 跨尝试学习

2.4 实验结果

AlfWorld 决策任务:

方法 成功率
ReAct ~50%
ReAct + Reflexion (启发式) 97% (130/134)
ReAct + Reflexion (GPT) 88%

HotPotQA 推理任务:

方法 准确率提升
CoT (GT) 基准
+ 情景记忆 +6%
+ Reflexion +14%

编程任务 (HumanEval):

基准 先前SOTA GPT-4 Reflexion
HumanEval (PY) 65.8% 80.1% 91.0%
HumanEval (RS) - 60.0% 68.0%
Leetcode Hard - 7.5% 15.0%

2.5 Reflexion 示例

任务: 用台灯检查杯子

第一次尝试(失败):

1
2
3
4
5
6
7
8
> go to drawer 1
抽屉1是关着的
> ... (搜索杯子)
> take mug 1 from desk 1
你从桌子1拿起杯子1
> use desklamp 1
什么都没发生
状态: 失败

反思:

在这个环境中,我的计划是先找杯子再找台灯并使用。然而,任务说的是用台灯检查杯子。我应该先找台灯,再找杯子。我注意到台灯在桌子1上。下一次尝试中,我会先去桌子1,找到台灯,然后找杯子并用台灯检查它。

第二次尝试(成功):

1
2
3
4
5
6
7
> go to desk 1
桌子1上有:台灯1、杯子1...
> take mug 1 from desk 1
你从桌子1拿起杯子1
> use desklamp 1
你打开了台灯1
状态: 成功

三、Generative Agents:人类行为的交互式拟像

论文: Interactive Simulacra of Human Behavior
会议: UIST 2023
作者: Joon Sung Park 等 (斯坦福大学 & Google)
被引用: 20次

3.1 核心思想

构建模拟可信人类行为的计算软件智能体:

  • 醒来、做早餐、去上班
  • 艺术家画画,作者写作
  • 形成观点,注意彼此,主动发起对话
  • 回忆和反思过去,规划未来

3.2 核心架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──────────────────────────────────────────────────────────────────┐
│ 记忆流 (Memory Stream) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ 观察 │ │ 反思 │ │ 计划 │ │
│ │ Observations│ │ Reflections │ │ Plans │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────┐
│ 记忆检索 │
│ (时近性 + 重要性 + 相关性) │
└──────────────┬──────────────────────┘


┌─────────────────────────────────────┐
│ 行为生成 │
│ (Plan, React, Dialogue) │
└─────────────────────────────────────┘

3.3 记忆检索公式

组件 描述 实现
时近性 最近访问的记忆分数更高 指数衰减函数,衰减因子0.995
重要性 区分平凡记忆和核心记忆 LLM评分1-10
相关性 与当前情况相关的记忆 嵌入向量余弦相似度

3.4 反思机制

触发条件: 重要性分数总和 > 150(约每天2-3次)

反思生成过程:

  1. 确定反思内容: 用最近100条记忆查询

    • 提示:”仅根据上述信息,我们可以回答哪3个最突出的高层次问题?”
  2. 检索相关记忆: 使用问题作为检索查询

  3. 提取洞察:

    • 输出格式:”洞察(因为1, 5, 3)”

反思树: 叶节点=观察,非叶节点=越来越抽象的反思

1
2
3
4
5
          [Klaus对研究充满热情]  ← 元反思
/ \
[Klaus致力于研究] [Klaus和Maria有共同兴趣] ← 反思
/ \ / \
[写论文] [读书] [讨论项目] [图书馆相遇] ← 观察

3.5 规划机制

递归分解日程:

  1. 粗略计划: 一天的议程大纲
  2. 小时级分解: 每小时的活动块
  3. 细粒度分解: 5-15分钟的具体动作

示例:

  • 粗略:”下午1:00到5:00创作新音乐”
  • 小时级:”下午1:00:开始为音乐创作头脑风暴…”
  • 细粒度:”下午4:00:拿一些小零食。下午4:05:在工作区周围短暂散步…”

3.6 涌现的社会行为

实验设置: 25个智能体,Smallville小镇

涌现现象:

现象 描述
信息扩散 Sam的市长候选资格传播到32%智能体
关系记忆 智能体记住新认识的人及对话内容
协调活动 Isabella的情人节派对:5人自发出席
网络密度 从0.167增加到0.74

情人节派对案例:

  1. Isabella计划2月14日下午5-7点的派对
  2. 她花一天装饰咖啡馆
  3. Maria帮忙装饰,并邀请暗恋的Klaus
  4. 最终5个智能体在正确时间出现

3.7 评估结果

条件 TrueSkill评分
完整架构 29.89
无反思 26.88
无反思、无计划 25.64
人类众包 22.95
无记忆(先前SOTA) 21.21

效应大小: 完整架构 vs 先前SOTA = 8个标准差


四、三大框架对比

4.1 核心差异

维度 ReAct Reflexion Generative Agents
核心目标 任务完成 从失败学习 行为拟真
知识表示 推理轨迹 语言化反思 记忆流
学习方式 单次推理 跨尝试积累 持续记忆+反思
时间跨度 单任务 多次尝试 天/周级
是否微调

4.2 记忆机制对比

特性 ReAct Reflexion Generative Agents
存储内容 当前轨迹 语言化反思 观察+反思+计划
存储形式 上下文 滑动窗口 记忆流列表
检索方式 时间顺序 时近性+重要性+相关性
失败经验 ✅ 重点 ⚠️ 不强调
抽象层次 单层 双层 多层(反思树)

4.3 反思机制对比

特性 ReAct Reflexion Generative Agents
有无反思 ❌ 无 ✅ 核心 ✅ 核心
触发条件 - 每次失败后 重要性>150
输出 - 错误分析+改进 高层次洞察
目的 - 任务成功率 概念抽象

4.4 适用场景

场景 推荐方法 原因
知识问答 ReAct 与外部知识库交互
决策任务 Reflexion 从失败中学习
编程调试 Reflexion 需要多次尝试改进
社会模拟 Generative Agents 需要记忆和人格一致性
角色扮演 Generative Agents 需要丰富的背景记忆

五、组合使用建议

5.1 理想组合架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
┌────────────────────────────────────────────────────────────────────┐
│ 理想智能体架构 │
├────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Generative Agents的记忆流 │ │
│ │ • 完整的经历记录 │ │
│ │ • 多层次反思 │ │
│ │ • 社交关系追踪 │ │
│ └───────────────────────────────────────────────────────────┘ │
│ + │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ ReAct的推理-行动范式 │ │
│ │ • 思想与动作交替 │ │
│ │ • 与外部环境交互 │ │
│ │ • 减少幻觉 │ │
│ └───────────────────────────────────────────────────────────┘ │
│ + │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Reflexion的失败反思 │ │
│ │ • 失败经验的语言化 │ │
│ │ • 错误诊断与改进建议 │ │
│ │ • 跨尝试学习 │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────┘

5.2 实现要点

  1. 使用 ReAct 作为基础行动框架:思想+动作交替执行
  2. 添加 Generative Agents 的记忆系统:持久化所有经历
  3. 集成 Reflexion 的失败反思:从错误中学习
  4. 定期触发高层次反思:形成长期理解

六、关键论文原文引用

ReAct

“We propose ReAct — a general paradigm to combine reasoning and acting with language models for solving diverse language reasoning and decision making tasks.”

Reflexion

“Reflexion converts binary or scalar feedback from the environment into verbal feedback in the form of a textual summary, which is then added as additional context for the LLM agent in the next episode.”

Generative Agents

“Generative agents wake up, cook breakfast, and head to work; artists paint, authors write; they form opinions, notice each other, and initiate conversations; they remember and reflect on days past as they plan the next day.”


返回总览 | 下一篇:应用扩展篇