Voyager은 게임 Minecraft 환경에서 LLM을 기반으로 작동하는 지속적 학습 에이전트로 인간의 개입 없이 세계를 탐험하고, 다양한 기술을 습득하여 생존한다.

기존의 연구는 강화학습이나 모방학습을 사용하여 체계적인 탐험이 어렵고, 결과의 해석 가능성이 떨어지며, 일반화 능력이 부족하다는 한계가 있다.
Minecraft의 특징은 아래와 같다.
- 사전에 정의된 목표나 고정된 스토리가 없다.
- 무작위로 생성된 광대한 세계를 탐험하여, 자원을 모아 tech tree를 해금해야한다.
인간 플레이어의 경우 나무 채집, 음식 요리와 같은 간단한 작업에서 발전하여 몬스터와 전투, 다이아 도구 제작으로 발전한다.
1. Auto Curriculum
- 에이전트가 세계를 최대한으로 탐험할 수 있도록 자동으로 학습 경로를 설정한다.
2. Skill Library
복잡한 행동들을 실행 가능한 코드 형태로 저장 및 검색하여 재사용할 수 있도록 하는 skill library를 구축한다.
- 새로운 상황에서 기존 스킬을 조합해서 문제를 해결할 수 있도록 한다.
1. 환경 피드백 및 실행 오류
- 이전 코드의 실행 결과로 발생한 피드백, 오류, 비평을 포함하여 GPT-4가 코드를 스스로 개선 할 수 있도록 한다.
- 환경 피드백: 스틱을 제작하려면 나무 판자가 2개 더 필요합니다.
- 실행 오류: acacia_axe라는 아이템이 없으므로 wooden_axe를 제작해야합니다.

2. CoT
- 코드 생성 전에 체계적인 사고과정을 통해 문제를 해결하도록 유도한다.
3. Iterative Prompting Mechanism
반복적 프롬프트 매커니즘을 통해서 환경에서 얻은 피드백, 실행 중 발생 오류, 자체 검증 과정을 통합해서 프로그램을 개선한다.
프롬프트는 아래와 같은 구성 요소로 이루어진다.
1. Directives(지침)
- 다양한 행동을 장려하고 제약 조건을 부여한다.
예) 목표는 가능한 다양한 것을 발견하는 것입니다. 다음 작업은 너무 어렵지 않아야합니다. 필요한 자원이나 기술이 부족할 수 있기 때문입니다.
2. Current State(에이전트의 현재 상태)
- 인벤토리, 장비, 주변 블록과 생물, 바이오, 시간, 건강/배고픔 상태, 위치 등의 정보를 포함
3. Exploration Progress(탐험 진행 상황)
- 이전에 완료하거나 실패한 작업 목록을 제공해서 에이전트의 현재 능력과 한계를 반영
4. Additional Context (추가적인 맥락)
- GPT 3.5를 사용해서 현재 상태와 탐험 진행 상황을 기반으로 자문자답을 수행
실행 과정은 아래와 같다
1. 환경 피드백
프로그램 실행 도중 발생하는 중간 과정의 피드백을 제공한다.
방법 :VOYAGER는 제어 프리미티브 API 내부에서 bot.chat() 기능을 활용하여 환경 피드백을 생성한다.
2. 실행 오류
코드 해석기(interpreter)에서 발생하는 실행 오류를 제공한다.
3. 자가 검증
자동 커리큘럼에서 제안한 작업이 성공적으로 완료되었는지 확인한다.
- 새로운 작업마다 수동 검증 코드를 작성하는 대신, 추가적인 GPT-4 에이전트를 활용한다.
- 에이전트의 현재 상태와 작업 내용을 제공하고, GPT-4에게 비평가(critic) 로서 작동하도록 요청한다.
- 작업이 실패한 경우, 비평가는 작업을 완료하기 위한 제안을 제공합니다.

- GPT-4가 프로그램을 생성한다.
- 생성된 프로그램을 실행하고 환경 피드백과 실행 오류를 수집한다.
- 수집된 피드백은 다음 라운드의 GPT-4 프롬프트에 통합되어 코드를 개선한다.
- 이 과정을 반복하여 자가 검증(self-verification)이 작업 완료를 확인할 때까지 진행한다.
- 작업이 완료되면 새로 생성된 스킬을 스킬 라이브러리에 추가하고, 자동 커리큘럼에서 새로운 작업을 요청한다.
- 만약 4번의 코드 생성 라운드 이후에도 작업이 완료되지 않으면, 자동 커리큘럼에서 새로운 작업을 제안받는다.