Odyssey

zju-vipaMIT长期未更新

给 Minecraft 智能体提供开放世界技能的开源方案,通过微调大语言模型让智能体在游戏中自主完成多样化任务。

Odyssey: Empowering Minecraft Agents with Open-World Skills

暂无版本411star31fork同步于 2026-11-07 07:29 UTC

怎么上手

由 README 提炼,执行前请确认
cd Odyssey
pip install -e .
pip install -r requirements.txt
npm install -g yarn
cd Odyssey/odyssey/env/mineflayer
yarn install
硬件要求按 README 说明

README 未说明显存或 GPU 要求;示例使用 LLaMA3-8B 与 LLaMA3-70B 后端,需自行部署 LLM 服务。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 LLM 的 Minecraft 智能体框架,用开放世界技能库让智能体完成长程与即时规划任务

给 Minecraft 智能体提供开放世界技能的开源方案,通过微调大语言模型让智能体在游戏中自主完成多样化任务。

核心能力

  • 内置 40 个基础技能与 183 个组合技能的开放世界技能库
  • 提供基于 39 万+ Minecraft Wiki 指令微调的 LLaMA-3 模型
  • 包含长期规划、动态即时规划与自主探索三类能力基准
  • 基于 Voyager 框架,用检索到的技能驱动动作选择
  • 开源爬虫程序与综合技能库,可自动收集可采集与可合成物品

容易踩的坑

需先安装 git-lfs 并单独下载 sentence-transformers 嵌入模型,再在 config.json 中配置路径;需自行部署 Minecraft 服务器(可用 docker)和 LLaMa 后端服务;Node.js 侧需在 mineflayer 及其 node_modules 下分别执行 npx tsc 编译。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Official codebase for the paper "Odyssey: Empowering Minecraft Agents with Open-World Skills". This codebase is based on the Voyager framework.

    Overview

    Abstract: Recent studies have delved into constructing generalist agents for open-world environments like Minecraft. Despite the encouraging results, existing efforts mainly focus on solving basic programmatic tasks, e.g., material collection and tool-crafting following the Minecraft tech-tree, treating the ObtainDiamond task as the ultimate goal. This limitation stems from the narrowly defined set of actions available to agents, requiring them to learn effective long-horizon strategies from scratch. Consequently, discovering diverse gameplay opportunities in the open world becomes challenging. In this work, we introduce Odyssey, a new framework that empowers Large Language Model (LLM)-based agents with open-world skills to explore the vast Minecraft world. Odyssey comprises three key parts:

    • (1) An interactive agent with an open-world skill library that consists of 40 primitive skills and 183 compositional skills.
    • (2) A fine-tuned LLaMA-3 model trained on a large question-answering dataset with 390k+ instruction entries derived from the Minecraft Wiki.
    • (3) A new agent capability benchmark includes the long-term planning task, the dynamic-immediate planning task, and the autonomous exploration task.

    Extensive experiments demonstrate that the proposed Odyssey framework can effectively evaluate different capabilities of LLM-based agents. All datasets, model weights, and code are publicly available to motivate future research on more advanced autonomous agent solutions.

    News

    • [Apr 29, 2025] 🔥 We are very happy that ODYSSEY has been accepted by IJCAI 2025.
    • [Mar 5, 2025] 🔥 We have uploaded our new paper titled "Parallelized Planning-Acting for Efficient LLM-based Multi-Agent Systems" to arXiv.
    • [Feb 23, 2025] 🔥 We have open-sourced the Multi-Agent Framework to align with our latest paper.
    • [Oct 1, 2024] 🔥 We have additionally compared more baselines (with different open-sourced LLMs and agents) and designed more test scenarios (for the long-term planning task and the dynamic-immediate planning task) in the updated version of the paper.
    • [Sep 1, 2024] 🔥 We have additionally open-sourced the Web Crawler Program, which was used to collect data from Minecraft Wikis. Researchers can modify this program to crawl data relevant to their needs.
    • [Aug 14, 2024] 🔥 We have additionally open-sourced the Comprehensive Skill Library, aiming to provide an automated tool to collect all collectible and craftable items in Minecraft.
    • [Jul 23, 2024] 🔥 The paper for ODYSSEY has been uploaded to arXiv!
    • [Jun 13, 2024] 🔥 The GitHub repository for ODYSSEY has been open-sourced!

    Demo

    All demonstration videos were captured using the spectator mode within Minecraft. To comply with GitHub's file size restrictions, some videos have been accelerated.

    Mining Diamonds from Scratch:

    Watch the video

    Craft Sword and Combat Zombie:

    Watch the video

    Shear a Sheep and Milk a Cow:

    Watch the video

    Autonomous Exploration: (Only First Few Rounds)

    Watch the video

    Contents

    Directory Description

    1. LLM-Backend

      Code to deploy LLM backend.

    2. MC-Crawler

      Crawling Minecraft game information from Minecraft Wiki and storing data in markdown format.

    3. MineMA-Model-Fine-Tuning

      Code to fine-tune the LLaMa model and generate training and test datasets.

    4. Odyssey

      Code for Minecraft agents based on a large language model and skill library.

    Odyssey Installation

    We use Python ≥ 3.9 and Node.js ≥ 16.13.0. We have tested on Ubuntu 20.04, Windows 10, and macOS.

    Python Install

    cd Odyssey
    pip install -e .
    pip install -r requirements.txt
    

    Node.js Install

    npm install -g yarn
    cd Odyssey/odyssey/env/mineflayer
    yarn install
    cd Odyssey/odyssey/env/mineflayer/mineflayer-collectblock
    npx tsc
    cd Odyssey/odyssey/env/mineflayer
    yarn install
    cd Odyssey/odyssey/env/mineflayer/node_modules/mineflayer-collectblock
    npx tsc
    

    Minecraft Server

    You can deploy a Minecraft server using docker. See here.

    Embedding Model

    1. Need to install git-lfs first.

    2. Download the embedding model repository

      git lfs install
      git clone https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2.git
      
    3. The directory where you clone the repository is then used to set embedding_dir.

    Config

    You need to create config.json according to the format of conf/config.json.keep.this in conf directory.

    • server_host: LLaMa backend server ip.
    • server_port: LLaMa backend server port.
    • NODE_SERVER_PORT: Node service port.
    • SENTENT_EMBEDDING_DIR: Path to your embedding model.
    • MC_SERVER_HOST: Minecraft server ip.
    • MC_SERVER_PORT: Minecraft server port.

    Get Started

    After completing the above installation and configuration, you can start the agent by simply running python main.py. To operate the agent under different task scenarios, manually modify the function you wish to execute. Below are the task scenarios.

    Odyssey Tasks

    Subgoal

    def test_subgoal():
        odyssey_l3_8b = Odyssey(
            mc_port=mc_port,
            mc_host=mc_host,
            env_wait_ticks=env_wait_ticks,
            skill_library_dir="./skill_library",
            reload=True, # set to True if the skill_json updated
            embedding_dir=embedding_dir, # your model path
            environment='subgoal',
            resume=False,
            server_port=node_port,
            critic_agent_model_name = ModelType.LLAMA3_8B_V3,
            comment_agent_model_name = ModelType.LLAMA3_8B_V3,
            curriculum_agent_qa_model_name = ModelType.LLAMA3_8B_V3,
            curriculum_agent_model_name = ModelType.LLAMA3_8B_V3,
            action_agent_model_name = ModelType.LLAMA3_8B_V3,
        )
        # 5 classic MC tasks
        test_sub_goals = ["craft crafting table", "craft wooden pickaxe", "craft stone pickaxe", "craft iron pickaxe", "mine diamond"]
        try:
            odyssey_l3_8b.inference_sub_goal(task="subgoal_llama3_8b_v3", sub_goals=test_sub_goals)
        except Exception as e:
            print(e)
    
    ModelFor what
    action_agent_model_nameChoose one of the k retrieved skills to execute
    curriculum_agent_model_namePropose tasks for farming and explore
    curriculum_agent_qa_model_nameSchedule subtasks for combat, generate QA context, and rank the order to kill monsters
    critic_agent_model_nameAction critic
    comment_agent_model_nameGive the critic about the last combat result, in order to reschedule subtasks for combat

    Long-term Planning Task

    def test_combat():
        odyssey_l3_70b = Odyssey(
            mc_port=mc_port,
            mc_host=mc_host,
            env_wait_ticks=env_wait_ticks,
            skill_library_dir="./skill_library",
            reload=True, # set to True if the skill_json updated
            embedding_dir=embedding_dir, # your model path
            environment='combat',
            resume=False,
            server_port=node_port,
            critic_agent_model_name = ModelType.LLAMA3_70B_V1,
            comment_agent_model_name = ModelType.LLAMA3_70B_V1,
            curriculum_agent_qa_model_name = ModelType.LLAMA3_70B_V1,
            curriculum_agent_model_name = ModelType.LLAMA3_70B_V1,
            action_agent_model_name = ModelType.LLAMA3_70B_V1,
        )
        
        multi_rounds_tasks = ["1 enderman", "3 zombie"]
        l70_v1_combat_benchmark = [
                            # Single-mob tasks
                             "1 skeleton",  "1 spider", "1 zombified_piglin", "1 zombie",
                            # Multi-mob tasks
                            "1 zombie, 1 skeleton", "1 zombie, 1 spider", "1 zombie, 1 skeleton, 1 spider"
                            ]
        for task in l70_v1_combat_benchmark:
            odyssey_l3_70b.inference(task=task, reset_env=False, feedback_rounds=1)
        for task in multi_rounds_tasks:
            odyssey_l3_70b.inference(task=task, reset_env=False, feedback_rounds=3)
    

    Dynamic-Immediate Planning Task

    def test_farming():
        odyssey_l3_8b = Odyssey(
            mc_port=mc_port,
            mc_host=mc_host,
            env_wait_ticks=env_wait_ticks,
            skill_library_dir="./skill_library",
            reload=True, # set to True if the skill_json updated
            embedding_dir=embedding_dir, # your model path
            environment='farming',
            resume=False,
            server_port=node_port,
            critic_agent_model_name = ModelType.LLAMA3_8B_V3,
            comment_agent_model_name = ModelType.LLAMA3_8B_V3,
            curriculum_agent_qa_model_name = ModelType.LLAMA3_8B_V3,
            curriculum_agent_model_name = ModelType.LLAMA3_8B_V3,
            action_agent_model_name = ModelType.LLAMA3_8B_V3,
        )
    
        farming_benchmark = [
                        # Single-goal tasks
                        "collect 1 wool by shearing 1 sheep",
                        "collect 1 bucket of milk",
                        "cook 1 meat (beef or mutton or pork or chicken)",
                        # Multi-goal tasks
                        "collect and plant 1 seed (wheat or melon or pumpkin)"
                        ]
       	for goal in farming_benchmark:
    	      odyssey_l3_8b.learn(goals=goal, reset_env=False)
    

    Autonomous Exploration Task

    def explore():
        odyssey_l3_8b = Odyssey(
            mc_port=mc_port,
            mc_host=mc_host,
            env_wait_ticks=env_wait_ticks,
            skill_library_dir="./skill_library",
            reload=True, # set to True if the skill_json updated
            embedding_dir=embedding_dir, # your model path
            environment='explore',
            resume=False,
            server_port=node_port,
            critic_agent_model_name = ModelType.LLAMA3_8B,
            comment_agent_model_name = ModelType.LLAMA3_8B,
            curriculum_agent_qa_model_name = ModelType.LLAMA3_8B,
            curriculum_agent_model_name = ModelType.LLAMA3_8B,
            action_agent_model_name = ModelType.LLAMA3_8B,
            username='bot1_8b'
        )
        odyssey_l3_8b.learn()
    

    Related Works

    IDPaperAuthorsVenue
    1MineRL: A Large-Scale Dataset of Minecraft DemonstrationsWilliam H. Guss, Brandon Houghton, Nicholay Topin, Phillip Wang, Cayden Codel, Manuela Veloso, Ruslan SalakhutdinovIJCAI 2019
    2Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online VideosBowen Baker, Ilge Akkaya, Peter Zhokhov, Joost Huizinga, Jie Tang, Adrien Ecoffet, Brandon Houghton, Raul Sampedro, Jeff ClunearXiv 2022
    3MineDojo: Building Open-Ended Embodied Agents with Internet-Scale KnowledgeLinxi Fan, Guanzhi Wang, Yunfan Jiang, Ajay Mandlekar, Yuncong Yang, Haoyi Zhu, Andrew Tang, De-An Huang, Yuke Zhu, Anima AnandkumarNeurIPS 2022
    4Open-World Multi-Task Control Through Goal-Aware Representation Learning and Adaptive Horizon PredictionShaofei Cai, Zihao Wang, Xiaojian Ma, Anji Liu, Yitao LiangCVPR 2023
    5Describe, Explain, Plan and Select: Interactive Planning with Large Language Models Enables Open-World Multi-Task AgentsZihao Wang, Shaofei Cai, Guanzhou Chen, Anji Liu, Xiaojian Ma, Yitao LiangNeurIPS 2023
    6Skill Reinforcement Learning and Planning for Open-World Long-Horizon TasksHaoqi Yuan, Chi Zhang, Hongcheng Wang, Feiyang Xie, Penglin Cai, Hao Dong, Zongqing LuNeurIPS Workshop 2023
    7Voyager: An Open-Ended Embodied Agent with Large Language ModelsGuanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, Anima AnandkumararXiv 2023
    8Ghost in the Minecraft: Generally Capable Agents for Open-World Environments via Large Language Models with Text-based Knowledge and MemoryXizhou Zhu, Yuntao Chen, Hao Tian, Chenxin Tao, Weijie Su, Chenyu Yang, Gao Huang, Bin Li, Lewei Lu, Xiaogang Wang, Yu Qiao, Zhaoxiang Zhang, Jifeng DaiarXiv 2023
    9STEVE-1: A Generative Model for Text-to-Behavior in MinecraftShalev Lifshitz, Keiran Paster, Harris Chan, Jimmy Ba, Sheila McIlraithNeurIPS 2023
    10GROOT: Learning to Follow Instructions by Watching Gameplay VideosShaofei Cai, Bowei Zhang, Zihao Wang, Xiaojian Ma, Anji Liu, Yitao LiangarXiv 2023
    11MCU: A Task-centric Framework for Open-ended Agent Evaluation in MinecraftHaowei Lin, Zihao Wang, Jianzhu Ma, Yitao LiangarXiv 2023
    12LLaMA Rider: Spurring Large Language Models to Explore the Open WorldYicheng Feng, Yuxuan Wang, Jiazheng Liu, Sipeng Zheng, Zongqing LuarXiv 2023
    13JARVIS-1: Open-World Multi-task Agents with Memory-Augmented Multimodal Language ModelsZihao Wang, Shaofei Cai, Anji Liu, Yonggang Jin, Jinbing Hou, Bowei Zhang, Haowei Lin, Zhaofeng He, Zilong Zheng, Yaodong Yang, Xiaojian Ma, Yitao LiangarXiv 2023
    14See and Think: Embodied Agent in Virtual EnvironmentZhonghan Zhao, Wenhao Chai, Xuan Wang, Li Boyi, Shengyu Hao, Shidong Cao, Tian Ye, Jenq-Neng Hwang, Gaoang WangarXiv 2023
    15Creative Agents: Empowering Agents with Imagination for Creative TasksChi Zhang, Penglin Cai, Yuhui Fu, Haoqi Yuan, Zongqing LuarXiv 2023
    16MP5: A Multi-modal Open-ended Embodied System in Minecraft via Active PerceptionYiran Qin, Enshen Zhou, Qichang Liu, Zhenfei Yin, Lu Sheng, Ruimao Zhang, Yu Qiao, Jing ShaoarXiv 2024
    17Auto MC-Reward: Automated Dense Reward Design with Large Language Models for MinecraftHao Li, Xue Yang, Zhaokai Wang, Xizhou Zhu, Jie Zhou, Yu Qiao, Xiaogang Wang, Hongsheng Li, Lewei Lu, Jifeng DaiarXiv 2024
    18MrSteve: Instruction-Following Agents in Minecraft with What-Where-When MemoryJunyeong Park, Junmo Cho, Sungjin AhnarXiv 2024
    19Project Sid: Many-agent simulations toward AI civilizationAltera.AL, Andrew Ahn, Nic Becker, Stephanie Carroll, Nico Christie, Manuel Cortes, Arda Demirci, Melissa Du, Frankie Li, Shuying Luo, Peter Y Wang, Mathew Willows, Feitong Yang, Guangyu Robert YangarXiv 2024
    20ADAM: An Embodied Causal Agent in Open-World EnvironmentsShu Yu, Chaochao LuarXiv 2024
    21WALL-E: World Alignment by Rule Learning Improves World Model-based LLM AgentsSiyu Zhou, Tianyi Zhou, Yijun Yang, Guodong Long, Deheng Ye, Jing Jiang, Chengqi ZhangarXiv 2024
    22Optimus-1: Hybrid Multimodal Memory Empowered Agents Excel in Long-Horizon TasksZaijing Li, Yuquan Xie, Rui Shao, Gongwei Chen, Dongmei Jiang, Liqiang NieNeurIPS 2024
    23OmniJARVIS: Unified Vision-Language-Action Tokenization Enables Open-World Instruction Following AgentsZihao Wang, Shaofei Cai, Zhancun Mu, Haowei Lin, Ceyao Zhang, Xuejie Liu, Qing Li, Anji Liu, Xiaojian Ma, Yitao LiangNeurIPS 2024
    24VillagerAgent: A Graph-Based Multi-Agent Framework for Coordinating Complex Task Dependencies in MinecraftYubo Dong, Xukun Zhu, Zhengzhe Pan, Linchao Zhu, Yi YangACL 2024
    25GROOT-2: Weakly Supervised Multi-Modal Instruction Following AgentsShaofei Cai, Bowei Zhang, Zihao Wang, Haowei Lin, Xiaojian Ma, Anji Liu, Yitao LiangarXiv 2024

    Citation

    If you find this work useful for your research, please cite our paper:

    @inproceedings{liu2025odyssey,
      title={Odyssey: Empowering Minecraft Agents with Open-World Skills},
      author={Shunyu Liu and Yaoru Li and Kongcheng Zhang and Zhenyu Cui and Wenkai Fang and Yuxuan Zheng and Tongya Zheng and Mingli Song},
      booktitle={International Joint Conference on Artificial Intelligence},
      year={2025}
    }
    
    @article{li2025parallelized,
      title={Parallelized Planning-Acting for Efficient LLM-based Multi-Agent Systems},
      author={Li, Yaoru and Liu, Shunyu and Zheng, Tongya and Song, Mingli},
      journal={arXiv preprint arXiv:2503.03505},
      year={2025}
    }
    

    License

    ComponentLicense
    CodebaseMIT License
    Minecraft Q&A DatasetCreative Commons Attribution Non Commercial Share Alike 3.0 Unported (CC BY-NC-SA 3.0)

    Contact

    This project is developed by VIPA Lab from Zhejiang University. Please feel free to contact me via email ([email protected]) if you are interested in our research :)