[논문 리뷰] Voyager: An Open-Ended Embodied Agent with Large Language Models

smj·2026년 3월 31일

review

목록 보기
11/30

한줄 요약: 마인크래프트에서 LLM이 코드를 작성·실행·누적 학습하여, 사람의 개입 없이 새로운 기술을 끝없이 획득하는 최초의 "평생 학습" 체화 에이전트.

항목내용
저자Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi "Jim" Fan, Anima Anandkumar
소속NVIDIA, Caltech, UT Austin, Stanford
발표NeurIPS 2023 (Spotlight)
링크arxiv.org/abs/2305.16291
키워드Embodied Agent, Lifelong Learning, Code Generation, Minecraft

1. 문제 정의

기존 게임 AI 에이전트의 한계:

  1. 고정된 보상 함수: RL 에이전트는 사전 정의된 보상에만 최적화 → 새로운 목표 탐색 불가
  2. 기술 비축적: 에피소드마다 초기화 → 이전에 학습한 기술을 재활용하지 못함
  3. 수동 커리큘럼: 사람이 점진적 난이도의 태스크를 설계해야 함
마인크래프트가 좋은 테스트베드인 이유:
  - 절차적 생성 → 무한한 환경 다양성
  - 계층적 기술 트리 (나무 채취 → 도구 제작 → 채광 → 제련 → ...)
  - 코드 API(Mineflayer) → LLM의 코드 생성과 자연스러운 연결
  - 오픈 엔디드 → 고정 목표 없이 끝없는 탐험 가능

2. 제안 방법

3가지 핵심 모듈

1. 자동 커리큘럼 (Automatic Curriculum)
   → LLM이 현재 상태를 보고 다음 목표를 자율적으로 제안

2. 코드 생성 + 실행 피드백 루프
   → LLM이 JavaScript 코드를 작성, 게임에서 실행, 에러를 보고 수정

3. 기술 라이브러리 (Skill Library)
   → 성공한 코드를 이름+설명과 함께 저장, 이후 재활용

모듈 1: 자동 커리큘럼

GPT-4에게 제공하는 정보:
  - 현재 인벤토리: [oak_log x5, stone_pickaxe x1]
  - 발견한 블록: [iron_ore, coal_ore]
  - 이미 완료한 태스크: [mine_stone, craft_stone_pickaxe]
  - 실패한 태스크: [craft_iron_sword]

GPT-4의 응답 (다음 목표):
  "mine 3 iron_ore"

선택 기준:
  - 현재 보유 자원으로 시도 가능해야 함
  - 기존에 완료하지 않은 새로운 것이어야 함
  - 점진적 난이도 증가 (탐험 우선 원리)

모듈 2: 코드 생성 + 반복 수정

목표: "mine 3 iron_ore"

시도 1:
  GPT-4 → JavaScript 코드 생성:
    async function mine3IronOre(bot) {
      const ironOre = bot.findBlock('iron_ore', 32);
      await bot.dig(ironOre);  // 에러: stone_pickaxe 장착 안 함
    }

  실행 결과: "Error: need appropriate tool"

시도 2:
  GPT-4 ← 에러 메시지 + 환경 피드백
  GPT-4 → 수정된 코드:
    async function mine3IronOre(bot) {
      await bot.equip('stone_pickaxe');
      for (let i = 0; i < 3; i++) {
        const ironOre = bot.findBlock('iron_ore', 32);
        await bot.navigateTo(ironOre);
        await bot.dig(ironOre);
      }
    }

  실행 결과: 성공 ✓ → 기술 라이브러리에 저장

모듈 3: 기술 라이브러리

저장 형식:
  {
    name: "mine3IronOre",
    description: "Mine 3 iron ore blocks using a stone pickaxe",
    code: "async function mine3IronOre(bot) { ... }",
    dependencies: ["equipItem", "findBlock"]
  }

활용 방법:
  새 목표가 주어지면 → 설명 기반 검색 (embedding similarity)
  → 관련 기술을 컨텍스트에 포함
  → 기존 함수를 호출하거나 조합하여 새 기술 생성

효과:
  초기: 매번 기본 동작부터 코드 작성
  후기: craftDiamondPickaxe = smeltIron + craftStick + craftPickaxe
  → 기술이 누적될수록 복잡한 태스크를 더 빠르게 해결

3. 실험 결과

3.1 고유 아이템 획득 수 (160 반복 후)

에이전트고유 아이템 수기술 트리 깊이
ReAct (GPT-4)2.3나무 수준
Reflexion (GPT-4)3.5나무→돌
AutoGPT (GPT-4)4.1돌 수준
Voyager (GPT-4)63다이아몬드 수준

기존 방법 대비 15배 이상의 아이템 발견 — 기술 트리를 끝까지 탐험

3.2 기술 트리 마일스톤 도달 시간

마일스톤AutoGPTVoyager
나무 도구 제작12분5분
돌 도구 제작도달 못함18분
철 도구 제작도달 못함45분
다이아몬드 채굴도달 못함~2시간

3.3 기술 라이브러리의 효과 (어블레이션)

변형고유 아이템 수
Voyager (full)63
− 기술 라이브러리 제거21
− 자동 커리큘럼 제거 (랜덤 목표)12
− 실행 피드백 제거 (1회 시도)8

기술 라이브러리가 가장 큰 기여 — 누적 학습의 핵심

3.4 새 환경 일반화

학습 환경: 평원 바이옴
테스트 환경: 사막, 숲, 눈 바이옴 (처음 보는 환경)

결과:
  기존 에이전트: 환경 바뀌면 처음부터 다시 학습 필요
  Voyager: 기술 라이브러리를 그대로 이전 → 바로 적응
  → "코드"로 저장된 기술은 환경 독립적

4. 한계점

  • GPT-4 API 비용: 160 반복에 수십 달러 소모 — 대규모/장기 실행은 비용 부담
  • 마인크래프트 API 의존: Mineflayer의 고수준 API(findBlock, dig 등)에 의존 → 실제 로봇에 바로 적용 불가
  • 전투·사회적 상호작용 미비: 자원 수집·제작에 집중, PvP 전투나 NPC 상호작용은 다루지 않음
  • 기술 라이브러리 스케일링: 기술이 수백 개로 늘어나면 검색 정확도 저하 + 컨텍스트 오버플로우
  • 실패 복구: 치명적 실패(사망, 아이템 손실) 후 복구 전략이 제한적
  • 단일 에이전트: 멀티 에이전트 협력(마인크래프트 멀티플레이어) 미탐구

5. 의의와 영향

  • "LLM as 평생 학습 에이전트"의 첫 설득력 있는 데모 — 기술이 코드로 누적·재활용
  • 코드 생성이 단순 프로그래밍이 아닌 "세계와 상호작용하는 수단"임을 보여줌
  • 자동 커리큘럼(스스로 목표 설정) → 내적 동기(intrinsic motivation) 연구와 연결
  • 후속 연구: DEPS, STEVE-1, JARVIS-1 등 마인크래프트 에이전트의 직접적 기반
  • NVIDIA의 Embodied AI 비전과 연결 → 실제 로봇 에이전트로의 확장 연구 촉발

6. 💬 리뷰어 코멘트

Voyager의 가장 인상적인 점은 기술 라이브러리라는 개념의 우아함이다. RL 에이전트의 "경험 리플레이"가 벡터 형태의 난해한 것이라면, Voyager의 기술 라이브러리는 사람이 읽을 수 있는 코드다. 디버깅, 수정, 다른 환경으로의 이전이 자연스럽다. "코드가 곧 지식의 표현"이라는 통찰이 핵심이다.

마인크래프트라는 환경의 선택도 탁월하다. 충분히 복잡하면서도(계층적 기술 트리), 코드 API가 있어 LLM과 자연스럽게 연결되고, 시각적으로 인상적인 데모가 가능하다. 연구의 스토리텔링까지 고려한 설계다.

현실적 한계는 고수준 API 의존이다. bot.dig(block) 같은 추상화된 행동이 존재하기에 가능한 것이고, 실제 물리 환경에서는 이런 API가 없다. 하지만 SayCan이 로봇 primitive를 유사하게 추상화하여 성공한 것을 고려하면, 이 패턴은 충분히 확장 가능해 보인다.


관련 논문: SayCan, Inner Monologue, DEPS, STEVE-1, Reflexion

0개의 댓글