Voyager is an open-ended embodied agent powered by large language models, running in Minecraft. It is the first LLM-driven robotics-style lifelong learning agent capable of continuously exploring the world, acquiring diverse skills, and making new discoveries without human intervention.
Purpose and Positioning Voyager is primarily for research purposes, with the goal of exploring the ability of large language models to perform lifelong learning and autonomous exploration in an open-world game environment. It interacts with GPT-4 through black-box queries without fine-tuning model parameters.
Main Capabilities Voyager consists of three key components:
- Automatic curriculum: maximizes exploration and guides the agent to continuously discover new goals.
- Skill library: an ever-growing executable code library used to store and retrieve complex behaviors.
- Iterative prompting mechanism: combines environmental feedback, execution errors, and self-verification to improve programs.
The skills developed by Voyager are temporally extended, interpretable, and compositional, enabling rapid compounding of the agent's abilities and mitigating catastrophic forgetting. In experimental performance, compared with previous state-of-the-art methods, Voyager can obtain 3.3 times more unique items, travel 2.3 times farther, and unlock key tech tree milestones up to 15.3 times faster. Voyager can also use its learned skill library to solve new tasks from scratch in new Minecraft worlds, while other methods struggle with generalization.
Usage The Voyager code is provided in the repository under the MIT license.
Environment Requirements:
- Python >= 3.9
- Node.js >= 16.13.0
- Tested on Ubuntu 20.04, Windows 11, and macOS
Installation Steps:
- Install the Node.js package (in addition to the Python dependencies).
- Install the Minecraft game and set up a Minecraft instance, referring to the Minecraft Login Tutorial.
- Install Fabric mods to support all Voyager features, using the correct Fabric version.
Runtime Requirements: Voyager uses OpenAI's GPT-4 as the language model and requires an OpenAI API key.
Launch Method: After installingAfter setup, you can run Voyager. If you are using Azure Login for the first time, you need to generate a configuration file according to the command-line prompts. For Azure Login, you also need to choose a world yourself and open it to LAN. After running voyager.learn(), the game will pop up, and you need to:
- Select Singleplayer and click Create New World;
- Set Game Mode to Creative and Difficulty to Peaceful;
- After creating the world, press Esc and click Open to LAN;
- Select Allow cheats: ON and click Start LAN World;
- The bot will then join the world.
Resume learning from a checkpoint: If you stop the learning process and want to resume from a checkpoint later, you can instantiate Voyager to continue running.
Use a learned skill library to perform specific tasks: You can first pass the skill library directory to Voyager, then run task decomposition. Note: task decomposition may occasionally be illogical. If you find that the printed subgoals are flawed, you can rerun the decomposition. Finally, use the learned skill library to run the subgoals. All valid skill libraries can be found in Learned Skill Libraries.
Applicable scenarios Suitable for researchers studying LLM-driven lifelong learning, open-world exploration, skill accumulation, and generalization in the Minecraft environment. It can also be used to solve new tasks from scratch in a new world with a learned skill library.
Limitations and notes
- The project is strictly for research purposes and is not an official NVIDIA product.
- It depends on OpenAI GPT-4 and an API key, and requires the Minecraft game, Node.js, and the Fabric mod.
- Task decomposition may occasionally be illogical and require manual rerunning.
- If you encounter problems, it is recommended to check the FAQ first before submitting an issue.
Citation: If this work is helpful to you, please consider citing its paper.