VOYAGER: An Open-Ended Embodied Agent with Large Language Models
Digest (CISELQ)
- Context: LLM 기반 agent 연구는 ReAct, Reflexion, AutoGPT 등 단기 reasoning loop에 머물러 있었고, 개방형 환경(Minecraft)에서 평생 학습(lifelong learning)을 수행하며 스킬을 축적·재사용하는 embodied agent는 부재했다.
- Issue: 강화학습(RL) 기반 Minecraft agent(MineDojo, DreamerV3 등)는 sample inefficiency와 scalar reward 설계의 어려움, 장기 horizon 탐사의 실패로 tech tree의 상위 단계(다이아몬드 등)에 도달하기 어려웠다.
- Solution: Voyager는 GPT-4를 blackbox로 호출하여 (i) 호기심 기반 Automatic Curriculum, (ii) 실행 가능한 JavaScript(Mineflayer) 코드로 구성된 Skill Library, (iii) self-verification + 환경 피드백을 통한 Iterative Prompting Mechanism을 결합한 세 축의 파이프라인을 제안한다.
- Evaluation: Minecraft 환경에서 획득한 고유 아이템 수, 이동 거리, tech tree milestone 달성 시간, novel world generalization 네 축으로 평가.
- Learnings: GPT-4의 in-context reasoning만으로 fine-tuning 없이 평생 학습 agent 구축이 가능하며, 스킬을 자연어 description embedding으로 retrieval하는 방식이 catastrophic forgetting을 방지한다는 점을 실증.
- Questions: GPT-3.5/오픈소스 LLM으로의 이식성, 비-Minecraft 환경(실세계 로보틱스)에서의 일반화, 실행 가능한 코드로 표현되기 어려운 perceptual skill에 대한 한계.
섹션별 요약
Introduction
Minecraft는 개방형·절차 생성·무한 horizon·compositional crafting tree를 가진 대표적 open-ended 환경이다. 기존 RL agent는 sparse reward와 거대한 action space에서 비효율적이었고, LLM 기반 agent(ReAct, Reflexion, AutoGPT)는 short-horizon task에 한정되었다. Voyager는 “평생 동안 스스로 커리큘럼을 짜고, 코드 스킬을 축적하며, 실패에서 배우는” agent의 개념을 제시한다.
Methods
세 가지 핵심 컴포넌트:
- Automatic Curriculum: GPT-4에게 현재 inventory, 장비, 주변 biome, 이전 완료 task를 제공하고 “다음으로 수행할 적절히 어려운 task”를 생성하도록 함 (novelty-seeking).
- Skill Library: 각 스킬은 JavaScript 코드 + 자연어 description으로 저장. description을 text embedding으로 변환해 vector DB에 저장하고, 새로운 task 수행 시 top-k 유사 스킬을 retrieval하여 in-context 제공.
- Iterative Prompting: GPT-4가 코드 생성 → Mineflayer에서 실행 → (a) 실행 에러, (b) 환경 상태, (c) GPT-4 기반 self-verification 피드백을 받아 최대 round 반복 개선 후 스킬 라이브러리에 영구 저장.
Results
- 고유 아이템 수: 이전 SOTA(AutoGPT/ReAct/Reflexion Minecraft adapt) 대비 3.3배.
- 이동 거리: 탐험 거리 2.3배.
- Tech tree milestone 속도: 동일 milestone(wooden/stone/iron/diamond tool) 도달 시간 15.3배 빠름.
- Zero-shot generalization: 학습한 skill library를 새로운 seed의 world에 투입해 unseen task 해결 능력 확인.
| 지표 | Voyager | 이전 SOTA | 배수 |
|---|---|---|---|
| Unique items | 63 | 19 | 3.3x |
| Traversed distance | 2.3x | 1.0x (base) | 2.3x |
| Tech tree milestone time | 1x (base) | 15.3x | 15.3x faster |
| Novel world skill reuse | Yes | Limited | - |
Discussion
Skill의 “코드화”가 핵심이다. 코드는 (i) 조합 가능하고, (ii) 결정적으로 실행되며, (iii) 사람이 검증 가능하고, (iv) 이전 스킬을 함수 호출로 재활용할 수 있다. Automatic curriculum은 scalar reward 없이도 novelty를 유도하며, self-verification이 Reflexion류 reflection을 환경 grounded 하게 확장한다.
Insights
- LLM agent에서 “memory = retrieval-augmented code library”라는 패러다임은 short-term reflection(Reflexion)보다 훨씬 지속적이고 조합 가능하다.
- 계획(curriculum) - 실행(code) - 검증(self-verify)의 3-loop 구조는 이후 AutoGen, SWE-agent 등 multi-agent 프레임워크에 직접적 영향을 주었다.
Discussion Points
- GPT-4 의존성: 오픈소스 LLM에서는 code reasoning 품질 저하로 재현이 어렵다.
- Perceptual grounding 한계: 이미지 관찰 없이 structured state(inventory, biome string)만 사용하므로 시각적 과제에는 부적합.
- 비용: 각 스킬 합성마다 다수의 GPT-4 호출 필요.
메타데이터
| 항목 | 내용 |
|---|---|
| 저자 | Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, Anima Anandkumar |
| 소속 | NVIDIA, Caltech, UT Austin, Stanford, ASU |
| 발표 | TMLR 2024 (arXiv 2023.05) |
| 환경 | Minecraft (Mineflayer bot API) |
| Backbone | GPT-4 (blackbox, no fine-tuning) |
| 코드 | https://voyager.minedojo.org |
왜 이 연구를 하는가?
Minecraft는 “open-ended embodied AI”의 리트머스 시험지이다. 기존 접근은 두 갈래로 갈렸다.
- RL 진영(MineDojo, DreamerV3, VPT): 대규모 demonstration/video pretraining이 필요하며, reward shaping 없이 diamond 수준의 목표에 도달하기 어렵다.
- LLM 진영(ReAct, Reflexion, DEPS, AutoGPT): 단기 task에 특화되어 있고, 스킬 축적·재사용·장기 탐사를 다루지 않는다.
저자들은 “LLM의 world knowledge + code writing 능력”을 활용하면 별도의 gradient update 없이도 무한히 새로운 task를 시도하고 성공한 행동을 함수로 박제해 나갈 수 있다고 가정한다. 즉, 평생 학습을 in-context memory와 external skill library의 조합으로 근사하는 것이 연구 동기이다.
방법 (Method)
flowchart LR ENV[Minecraft / Mineflayer] -->|state, error| FB[Env Feedback] FB --> VERIFY[GPT-4 Self-Verification] CURR[Automatic Curriculum<br/>GPT-4] -->|next task| GEN[Code Writer GPT-4] LIB[(Skill Library<br/>desc embedding + code)] -->|top-k retrieval| GEN GEN -->|JS code| ENV VERIFY -->|pass| STORE[Store skill to Library] STORE --> LIB VERIFY -->|fail + critique| GEN ENV -->|inventory, biome| CURR
- State representation: inventory, equipped items, nearby entities/biomes, chat log 등을 텍스트로 직렬화.
- Curriculum 프롬프트: “propose the next task that is as novel and as achievable as possible”.
- Skill 합성: 코드 작성 → 실행 → (에러 or self-verification critique) → 수정 반복. 성공 시 함수명 + description을 임베딩하여 vector store에 저장.
- Skill 재사용: 새로운 task에서 description embedding similarity로 top-k 스킬을 주입, 이전 함수 호출이 가능.
발견 (Findings)
| 발견 | 설명 |
|---|---|
| Code skill > textual plan | 코드 함수 저장이 자연어 계획 저장보다 재사용·조합성이 우수 |
| Self-verification > Reflexion | 환경 상태를 직접 확인하므로 hallucinated success가 줄어듦 |
| Curriculum novelty 유도 | scalar reward 없이도 tech tree를 깊숙이 탐색 |
| Compositionality | 하위 스킬(mine_wood)을 상위 스킬(craft_pickaxe)이 함수 호출 |
| Generalization | 학습된 library가 새 world seed에도 재사용 가능 |
이론적 의의
Voyager는 “LLM agent를 위한 지속 학습 프레임워크”를 다음의 형태로 제시한다.
- **Planner(curriculum) + Actor(code writer) + Critic(self-verifier)**의 분리. 이후 AutoGen, MetaGPT, ChatDev 등 multi-agent 연구의 원형이 된다.
- 코드 = 프로시저 메모리: LLM의 non-parametric memory를 자연어가 아닌 실행 가능한 코드로 저장하는 패러다임. 이는 Toolformer/Code-as-Policies와 맥을 같이 하며, 이후 SWE-agent, Devin 류 코드 agent에 영향.
- Open-ended evaluation: 고정된 benchmark가 아닌 “획득 아이템 수”, “탐험 거리” 같은 open-ended 지표를 도입하여 agent 평가 방법론에도 기여.
재현성 및 신뢰도 평가
| 항목 | 평가 | 근거 |
|---|---|---|
| 코드 공개 | A | voyager.minedojo.org, GitHub 공식 리포 공개 |
| 데이터/환경 | A | Minecraft + Mineflayer 오픈 환경 |
| LLM 의존성 | C | GPT-4 blackbox; 동일 버전 재현 불가 |
| 평가 프로토콜 | B | seed/시간 정의는 명확하나 LLM stochasticity로 분산 큼 |
| Ablation 충실도 | B | curriculum, skill library, self-verify 각각 ablation 제시 |
| 종합 | B | 개념·코드는 재현 가능하나 절대 수치는 LLM 버전 의존 |
관련 연구
- LLM agents (단기): ReAct, Reflexion, AutoGPT, DEPS — Voyager의 self-verification과 prompting loop의 전신.
- Minecraft RL/IL: MineDojo, VPT (Video PreTraining), DreamerV3 — RL 접근의 한계를 드러내며 Voyager의 대안 동기를 제공.
- Code-as-Policies / ProgPrompt: LLM이 로봇 제어 코드를 생성하는 계열 — Voyager의 “코드 스킬” 아이디어와 연결.
- Open-ended learning: POET, XLand — novelty-seeking curriculum의 이론적 배경.
- 후속 연구: Ghost in the Minecraft (GITM), JARVIS-1, MP5 등 multimodal Minecraft agent로 확장됨.
원자적 인사이트
- “메모리는 자연어가 아니라 함수다” — 에이전트의 장기 기억을 실행 가능한 코드로 구현하면, retrieval만으로 복잡한 행동이 조합 가능한 programmatic memory가 되어 catastrophic forgetting이 구조적으로 예방된다.
- “보상 없는 커리큘럼” — LLM의 world knowledge가 자체적으로 “다음으로 시도할 만한 참신한 과제”를 제안할 수 있어, scalar reward 설계 없이도 장기 horizon 탐사가 가능하다. 이는 LLM이 sparse-reward RL의 exploration bottleneck을 우회하는 실증이다.
- “Grounded self-critique” — Reflexion의 언어 기반 self-reflection을 환경 상태 조회와 결합하면 hallucinated success를 효과적으로 줄일 수 있다.
핵심 용어 정리
- Lifelong Learning Agent: 고정된 task set 없이 지속적으로 새로운 기술을 습득·누적하는 에이전트.
- Automatic Curriculum: 외부 설계자 없이 agent 스스로 다음 학습 과제를 제안·선택하는 메커니즘.
- Skill Library: 자연어 description + 실행 가능한 코드(JS 함수) 쌍으로 구성된 vector-indexed 저장소.
- Mineflayer: Node.js 기반 Minecraft bot API. GPT-4가 생성한 JS 코드가 실행되는 런타임.
- Self-Verification: LLM이 환경 상태와 task 명세를 대조해 성공 여부를 자체 판정하는 기법.
- Tech Tree: Minecraft의 계층적 crafting dependency (wood → stone → iron → diamond).
- Open-Ended Evaluation: 고정 reward가 아닌 novelty·다양성·탐험 정도로 agent를 평가.
태그
Agents LLM-Agent Minecraft Lifelong-Learning Embodied-AI GPT-4 Code-as-Policies Automatic-Curriculum Skill-Library TMLR2024