Voyager 与已有智能体方法相比有什么不同?
更新时间
Voyager 与传统强化学习、模仿学习以及一般 LLM 智能体的核心区别在于:它不直接学习原始动作策略,而是让 LLM 生成可执行的代码技能,并把技能存进一个不断增长的技能库。这个设计让它的行为具有时间延展性、可解释性和可组合性,从而在开放世界中实现无需人工干预的终身学习。适用条件是:任务环境能接受代码作为动作接口(Voyager 的验证场景是 Minecraft),且可以调用 GPT-4 这类黑盒模型——Voyager 通过黑盒查询与 GPT-4 交互,不需要微调模型参数。
传统 RL 与模仿学习的局限
Voyager 论文在引言中把经典方法归为强化学习和模仿学习两类,它们都作用在原始动作层面。这带来三个具体困难:
- 探索难:在开放世界中,从原始动作出发做系统性探索代价很高。
- 可解释性弱:策略是隐式的,难以说明智能体为什么这么做。
- 泛化差:在新环境或新任务上迁移能力有限。
Voyager 的对比实验也印证了这一点:此前的 SOTA 方法在换到新的 Minecraft 世界后,很难从头解决新任务。
Voyager 的三个关键组件
Voyager 由三部分构成,每部分都对应一种能力:
| 组件 | 作用 | 解决的问题 |
|---|---|---|
| 自动课程(automatic curriculum) | 最大化探索,自主决定下一步学什么 | 开放世界中“先做什么”的探索难题 |
| 技能库(skill library) | 存储和检索可执行代码形式的复杂行为 | 能力累积与复用 |
| 迭代提示机制(iterative prompting) | 结合环境反馈、执行错误和自验证来改进程序 | 代码技能写错后如何自我修正 |
其中技能库是理解 Voyager 与传统方法差异的关键:技能以代码形式存在,因此天然可读、可组合,并且能随时间不断叠加。
技能库为什么能“累积能力”
传统智能体每次训练或每次任务往往从头开始,能力难以沉淀。Voyager 把学到的行为固化成代码技能,后续任务可以直接检索调用。论文指出,这些技能具有时间延展、可解释、可组合的特点,能让智能体能力快速复合增长,并缓解灾难性遗忘——旧技能不会因为学新技能而被覆盖。
这体现为“上下文终身学习”(in-context lifelong learning):Voyager 不更新模型权重,而是靠不断扩充的提示上下文和技能库来变强。一个贴切的例子是:当 Voyager 已经掌握“采集木材→制作工具→挖掘石头”这类代码技能后,面对需要石制工具的新任务,它可以直接组合已有技能,而不必从原始动作重新试错。
实验表现上的差异
论文给出的量化对比可以直接说明差距:
- 获得的独特物品数量是此前 SOTA 的 3.3 倍;
- 移动距离是 2.3 倍;
- 解锁关键技术树里程碑的速度最高快 15.3 倍;
- 在新 Minecraft 世界中,Voyager 能利用已学技能库从头解决新任务,而其他方法难以泛化。
怎么判断它是否适合你的场景
如果你关心的是开放世界中的自主探索、行为可解释性,以及能力能否跨任务沉淀和迁移,Voyager 的“代码技能 + 技能库 + 迭代提示”路线比原始动作层面的 RL/模仿学习更匹配。反过来,如果你的环境无法用代码表达动作,或者不能调用外部 LLM 做黑盒查询,这套机制的前提就不成立,需要另找方案。