当前位置: 首页 > news >正文

大语言模型驱动开放世界智能体:Odyssey框架在《我的世界》中的实践

1. 项目概述:当大语言模型“玩”起《我的世界》

如果你也玩过《我的世界》(Minecraft),肯定知道从零开始生存、最终挖到钻石的成就感。但你想过让一个AI智能体,像人类玩家一样,在这个无限生成的开放世界里,自主地完成从砍树、合成工作台、制作工具,到挖矿、战斗、畜牧等一系列复杂任务吗?这听起来像是科幻小说的情节,但Odyssey项目正将这一想象变为现实。作为一个长期关注AI与游戏交叉领域的研究者和实践者,我最近深度探索了由浙江大学VIPA实验室开源的Odyssey框架,它让我看到了大语言模型(LLM)驱动智能体在复杂开放世界环境中展现出的惊人潜力。

简单来说,Odyssey是一个基于大语言模型的《我的世界》智能体框架。它的核心目标,是解决现有AI智能体在开放世界游戏中面临的“技能匮乏”和“规划短视”两大难题。以往的智能体研究,往往将目标局限在“收集钻石”这类线性的、程序化的任务上,智能体需要从零学习每一步,效率低下且难以应对突发状况。而Odyssey的思路则更接近人类玩家:它先为智能体装备了一个庞大的“技能库”,里面包含了从“砍伐树木”到“合成铁剑”等223种基础与组合技能;然后,它用一个专门针对《我的世界》知识微调过的LLaMA-3模型作为“大脑”,来理解和规划任务;最后,通过一套精心设计的评估基准,来全面测试智能体的长期规划、动态应变和自主探索能力。这不仅仅是让AI“通关”游戏,更是旨在构建一个能够像人类一样,在充满不确定性的开放世界中学习、适应并完成多样化目标的通用智能体。接下来,我将从框架设计、实操部署、核心任务解析到避坑经验,为你完整拆解这个充满想象力的项目。

2. Odyssey框架深度解析:三层架构如何赋能开放世界智能体

要理解Odyssey的强大之处,我们必须深入其框架设计的核心。它并非一个简单的“脚本机器人”,而是一个由技能库(Skill Library)、领域专家模型(Fine-tuned LLM)和能力评估基准(Capability Benchmark)三层结构紧密耦合的系统。这套设计哲学,本质上是在模仿人类玩家如何从“小白”成长为“大佬”的过程。

2.1 核心组件一:开放世界技能库——智能体的“肌肉记忆”

人类玩家在《我的世界》中生存,依赖于一系列内化的基础操作,如WASD移动、鼠标点击破坏方块、打开合成界面拖拽物品等。对于AI智能体而言,这些最底层的游戏API调用就是它的“原子操作”。Odyssey的创新在于,它没有让智能体每次都从这些原子操作开始“思考”,而是预先构建了一个分层的技能库。

这个技能库包含40个原始技能(Primitive Skills)和183个组合技能(Compositional Skills)。原始技能可以理解为单一、明确的动作指令,例如mineBlock(block_type=“oak_log”, count=1)(砍伐一块橡木)。而组合技能则是多个原始技能按逻辑顺序的串联,用以完成一个更复杂的目标,例如craftWoodenPickaxe()(制作木镐)这个技能,其内部可能依次调用了“合成工作台”、“将木材加工成木板”、“合成木棍”、“最终合成木镐”等一系列原始技能。

为什么这个设计至关重要?这相当于为智能体提供了“快捷键”或“宏命令”。当任务目标是“制作一把石剑”时,智能体无需从“如何移动鼠标到合成网格”开始推理,它可以直接在技能库中检索到craftStoneSword()这个高级技能,或者将其分解为“挖圆石”、“合成石剑”等子技能来执行。这极大地压缩了规划空间,让智能体能将更多的“算力”集中在更高层次的战略决策上,比如“我应该先去挖矿还是先建房子防御怪物”。在实操中,技能库以JSON等结构化格式存储,每个技能都包含其名称、描述、前置条件、执行代码和效果。智能体通过语义检索(利用嵌入模型)来快速匹配当前情境下最合适的技能。

2.2 核心组件二:微调领域专家模型——智能体的“游戏大脑”

拥有丰富的技能只是第一步,关键在于如何根据瞬息万变的游戏环境,灵活地调用和组合这些技能。这就是大语言模型(LLM)扮演的角色。然而,通用的LLM(如ChatGPT)虽然知识渊博,但对《我的世界》这种拥有独特合成表、生物特性、物理机制的专业领域,其知识往往是笼统、模糊甚至过时的。

Odyssey团队为此专门收集并构建了一个包含超过39万条指令的《我的世界》问答数据集,并以此对LLaMA-3模型进行了监督微调(SFT)。这个过程可以理解为给一个通才模型进行“职业培训”,让它成为了《我的世界》领域的专家。这个微调后的模型,我们称之为MineMA

这个专家模型具体负责什么?在Odyssey框架中,它并非单一模块,而是根据职能分化为多个“智能体”:

  • 课程智能体(Curriculum Agent):负责提出长期任务或探索方向。例如,在自主探索模式下,它会根据当前拥有的资源(“我有10块铁锭”),提出下一个合理的目标(“接下来可以尝试合成一个铁桶去装水”)。
  • 动作智能体(Action Agent):这是决策的核心。它接收当前环境状态(如背包物品、周围生物、时间)和目标任务,然后从技能库中检索并选择最应该执行的下一个技能。它需要理解“天黑了,周围有僵尸声音”意味着“应该先制作一把剑”而不是“继续挖矿”。
  • 评论智能体(Critic & Comment Agent):负责对动作执行结果进行评估和反思。例如,在一次战斗后,如果生命值损失过大,评论智能体会分析原因(“因为没穿盔甲”),并建议调整后续计划(“优先制作皮革盔甲”)。

这种多智能体分工的架构,模拟了人类玩家大脑中“规划、执行、复盘”的循环,使得决策过程更加稳健和可解释。

2.3 核心组件三:多维能力评估基准——衡量智能体的“段位”

如何评价一个游戏AI是“聪明”还是“笨”?Odyssey没有使用单一的任务完成率,而是设计了一套包含三个维度的基准测试,全面评估智能体的不同能力:

  1. 长期规划任务(Long-term Planning Task):典型代表是“击败多个怪物”的连续战斗任务。例如,目标为“击败1个末影人和3个僵尸”。智能体不能蛮干,它需要规划一个资源采集、装备制作、战术执行的完整链条。它可能需要先挖铁做剑,再寻找并搭建一个安全的战斗场地,最后依次引怪击杀。这考验的是智能体分解复杂目标、管理多步骤流程和维持长期目标一致性的能力。

  2. 动态即时规划任务(Dynamic-Immediate Planning Task):以农业和畜牧任务为代表,例如“通过剪羊毛收集1块羊毛”或“收集并种植1颗小麦种子”。这类任务的特点是环境反馈即时,且可能需要应对突发状况。比如,羊可能会跑开,智能体需要动态调整路径去追赶;或者发现种子需要先耕地浇水才能种植。这考验的是智能体对即时环境变化的反应速度和调整计划的能力。

  3. 自主探索任务(Autonomous Exploration Task):这是最开放、最具挑战性的模式。智能体被“空投”到一个全新的世界,没有任何预设目标。它需要完全依靠自己来探索环境、发现资源、识别潜在威胁与机会,并自主设定生存与发展的目标。这最接近人类玩家的真实体验,也最能体现智能体的“通用性”和“好奇心”。

这套基准的意义在于,它不再仅仅关注智能体是否“到达终点”,更关注它“如何到达终点”的过程——其决策是否合理、高效,能否应对不确定性。这为后续优化智能体提供了非常清晰的方向。

3. 从零部署Odyssey:手把手搭建你的AI“史蒂夫”

看完了理论,是不是手痒想亲自运行一下?我将结合官方文档和实际部署中遇到的坑,为你梳理一份详细的搭建指南。整个环境涉及Python后端、Node.js中间层和Minecraft服务器,需要一些耐心。

3.1 基础环境准备:理清依赖关系

Odyssey的运行依赖于一个完整的服务链:Python主程序调用LLM后端服务,通过Node.js的Mineflayer库Minecraft Java版服务器进行交互。因此,我们需要按顺序搭建这四个部分。

首要原则:建议使用Linux系统(如Ubuntu 20.04/22.04)或WSL2(Windows)进行部署,可以避免大量Windows特有的路径和权限问题。以下步骤均以Ubuntu为例。

第一步:克隆项目并准备Python环境。

# 1. 克隆项目仓库 git clone https://github.com/zju-vipa/Odyssey.git cd Odyssey # 2. 创建并激活Python虚拟环境(强烈推荐,避免污染系统环境) python3.9 -m venv odyssey_env source odyssey_env/bin/activate # 3. 安装Python依赖 # 先安装项目本身(以可编辑模式) pip install -e . # 再安装requirements.txt中的依赖 pip install -r requirements.txt

注意:官方要求Python ≥ 3.9。如果遇到grpcio等包安装失败,通常是编译环境问题。可以尝试先安装系统级的编译工具:sudo apt-get install build-essential,或使用预编译的wheel文件。

第二步:配置Node.js与Mineflayer中间层。这是连接Python逻辑与Minecraft游戏服务器的桥梁,也是最容易出错的一步。

# 1. 确保已安装Node.js (>=16.13.0)和npm node --version npm --version # 2. 安装yarn包管理器 npm install -g yarn # 3. 进入Mineflayer环境目录并安装依赖 cd Odyssey/odyssey/env/mineflayer yarn install # 此步骤会安装mineflayer及其相关插件 # 4. 编译自定义的collectblock插件(用于让机器人收集方块) cd Odyssey/odyssey/env/mineflayer/mineflayer-collectblock npx tsc # 如果tsc命令未找到,需要先全局安装TypeScript编译器:npm install -g typescript # 5. 关键步骤:回到mineflayer目录,再次安装依赖,确保自定义插件被正确链接 cd Odyssey/odyssey/env/mineflayer yarn install # 6. 进入node_modules下的插件目录,再次编译(确保万无一失) cd Odyssey/odyssey/env/mineflayer/node_modules/mineflayer-collectblock npx tsc

避坑指南:很多人在第5步后运行仍报错,提示找不到mineflayer-collectblock模块。这是因为yarn install可能没有正确链接本地开发的包。一个可靠的解决方法是,在Odyssey/odyssey/env/mineflayer/package.json中,手动将"mineflayer-collectblock": "file:./mineflayer-collectblock"这行添加到dependencies中,然后再执行yarn install

3.2 核心服务部署:LLM、嵌入模型与游戏服务器

第三步:部署Minecraft服务器。Odyssey智能体需要连接到一个真正的Minecraft Java版服务器。最简单的方法是使用Docker。

# 1. 确保已安装Docker和Docker Compose # 2. 使用项目提供的docker-compose配置(位于 Odyssey/odyssey/docs/run_using_docker.md) # 通常命令如下: cd Odyssey/odyssey docker-compose up -d

这会启动一个原版(Vanilla)的Minecraft 1.20.1服务器。你需要进入服务器控制台或首次连接服务器来同意EULA协议(修改eula.txt中的eula=falseeula=true)。务必记下服务器的IP(通常是本机127.0.0.1)和端口(默认25565)。

第四步:准备嵌入模型(Embedding Model)。技能库的语义检索功能依赖于一个文本嵌入模型,将技能描述转换为向量进行相似度匹配。Odyssey默认使用sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2

# 1. 安装git-lfs(用于下载大模型文件) sudo apt-get install git-lfs git lfs install # 2. 克隆嵌入模型仓库(建议选择一个网络通畅的目录,模型约400MB) git clone https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2.git # 记下这个模型的完整路径,例如 /home/yourname/models/paraphrase-multilingual-MiniLM-L12-v2

第五步:部署LLM后端服务。这是整个系统的“大脑”。你需要运行一个能够提供API服务的LLaMA-3模型。项目代码中提供了LLM-Backend目录,但你需要自己准备模型权重文件(需自行申请下载,例如从Meta或Hugging Face)。假设你已获得LLaMA-3-8B的模型权重,并使用了类似text-generation-webuivLLM的框架部署了API服务。

  • 服务地址:假设你在本机部署,地址可能是http://127.0.0.1:8000
  • API格式:需要确保你的后端服务提供的API接口与Odyssey代码中的调用方式兼容(通常是发送一个包含prompt的POST请求到/v1/completions或类似端点)。你可能需要根据实际的后端框架(如FastChat, llama.cpp server)调整LLM-Backend中的代码。

3.3 配置文件与首次运行

第六步:配置核心文件config.jsonOdyssey/conf目录下,有一个示例文件config.json.keep.this。复制它并重命名为config.json,然后根据你的实际部署情况修改。

{ "server_host": "127.0.0.1", // 你的LLM后端服务IP "server_port": 8000, // 你的LLM后端服务端口 "NODE_SERVER_PORT": 3000, // Node.js服务的端口,保持默认或自定义 "SENTENT_EMBEDDING_DIR": "/home/yourname/models/paraphrase-multilingual-MiniLM-L12-v2", // 嵌入模型路径 "MC_SERVER_HOST": "127.0.0.1", // Minecraft服务器IP "MC_SERVER_PORT": 25565 // Minecraft服务器端口 }

第七步:启动与测试。确保Minecraft服务器、LLM后端服务都已正常运行。然后,在Odyssey项目根目录下,你可以运行一个简单的测试任务。首先,你需要修改main.py或创建一个测试脚本,指定要运行的任务类型。例如,测试一个子目标任务:

# test.py import sys sys.path.append('.') from odyssey.odyssey import Odyssey from odyssey.odyssey import ModelType # 初始化Odyssey智能体 agent = Odyssey( mc_port=25565, mc_host='127.0.0.1', env_wait_ticks=20, skill_library_dir="./skill_library", reload=False, embedding_dir="/home/yourname/models/paraphrase-multilingual-MiniLM-L12-v2", environment='subgoal', resume=False, server_port=3000, 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, ) # 定义一组经典MC任务链 tasks = ["craft crafting table", "craft wooden pickaxe", "craft stone pickaxe", "craft iron pickaxe", "mine diamond"] try: agent.inference_sub_goal(task="my_first_test", sub_goals=tasks) except Exception as e: print(f"运行出错: {e}")

运行python test.py。如果一切顺利,你应该能在Minecraft服务器中看到一个名为Bot的玩家开始自动砍树、合成,一步步向钻石进发。同时,终端会打印出智能体的决策日志。

4. 核心任务实战与代码剖析:看智能体如何思考与行动

部署成功只是开始,真正有趣的是观察智能体在不同任务下的表现,并理解其背后的决策逻辑。让我们深入代码,看看Odyssey是如何实现其三大核心任务的。

4.1 子目标链任务:拆解“从木棍到钻石”的标准化流程

子目标任务是理解Odyssey运作原理的最佳起点。在test_subgoal()函数中,我们看到智能体被赋予了一个清晰的目标链。其核心方法是inference_sub_goal()

智能体的决策循环(简化逻辑):

  1. 接收目标:例如,当前子目标是“craft stone pickaxe”(合成石镐)。
  2. 环境感知:智能体通过Mineflayer获取当前状态:背包物品(是否有圆石、木棍)、装备栏、周围方块、生物等。
  3. 技能检索:动作智能体(Action Agent)将当前状态和目标组合成提示词,询问LLM:“我的目标是合成石镐,我现在有X,没有Y,我该做什么?” LLM基于其微调后的《我的世界》知识,可能会输出“你需要先获得圆石”或“你需要一个工作台”。
  4. 技能匹配与执行:LLM输出的文本意图(如“获得圆石”)会被映射到技能库。系统通过嵌入模型计算该意图与所有技能描述的相似度,找到最匹配的技能,例如mineBlock(block_type=“cobblestone”, count=3)。然后,代码调用该技能对应的底层函数,通过Mineflayer控制游戏角色去挖矿。
  5. 结果验证与循环:执行后,智能体再次感知环境(背包里是否有了圆石)。如果目标未达成(还缺木棍),则回到步骤3,提出下一个子目标(“合成木棍”);如果目标达成,则推进到下一个主目标(如“合成铁镐”)。

代码中的关键参数解析:

  • reload=True/False:如果技能库JSON文件被更新,需要设置为True来重新加载。
  • env_wait_ticks=20:这是每次动作执行后,等待游戏世界更新(游戏刻)的时间。设置太短可能导致智能体在方块还未掉落时就判定挖掘失败;设置太长则降低效率。需要根据服务器性能和网络状况调整。
  • resume=False:如果设置为True,智能体会尝试从之前的检查点(checkpoint)恢复任务。这对于运行长时间任务时意外中断非常有用。

4.2 长期规划与战斗任务:动态环境下的多轮博弈

长期规划任务(如test_combat())的挑战在于,目标不是静态的,环境会因智能体自身行动和怪物AI而动态变化。以“击败1个末影人和3个僵尸”为例。

智能体的高阶策略:

  1. 资源评估与优先级排序:课程智能体(Curriculum Agent)首先会评估自身战力。如果发现手里只有木剑,而目标包含末影人(一种较强生物),它可能会优先规划“获取铁锭以制作铁剑或弓箭”的子任务。
  2. 战术规划:动作智能体在具体战斗时,不仅会选择“攻击”技能,还会结合环境。例如,它可能会先执行buildFightingArea()(搭建一个2格高的战斗平台,防止僵尸近身),或者useBowAttack(mob=“enderman”)(用弓箭远程攻击末影人,避免与其对视)。
  3. 多轮反馈与调整:参数feedback_rounds=3意味着智能体有三次尝试机会。如果第一次战斗失败(比如被僵尸围攻击杀),评论智能体(Critic Agent)会分析战败原因(“护甲值太低”、“被多个怪物围攻”),并在下一轮尝试前,让课程智能体调整计划,加入“制作盔甲”或“制作治疗药水”的任务。
  4. 状态维持reset_env=False参数表明,多次尝试是在同一个世界状态下连续进行的。这意味着智能体如果第一轮收集了资源但战斗失败,第二轮开始时这些资源仍然存在,它可以利用之前的积累,而不是从头开始。这更符合“学习”的过程。

4.3 自主探索任务:释放智能体的“好奇心”

这是最激动人心的模式explore()。智能体初始化后,只有一个简单的learn()指令,没有预设目标。

其内在驱动逻辑如下:

  1. 生成初始好奇心:课程智能体基于当前感知到的有限环境(出生点附近的生物群系、资源),提出一个宽泛的探索方向。例如,“附近有树林,可以尝试获取木材”。
  2. 技能驱动的探索:动作智能体执行“砍树”技能。在此过程中,它可能会意外发现“苹果从树叶中掉落”或“遇到了一只羊”。
  3. 机会识别与目标形成:这些新发现会被记录到智能体的记忆(通常是一个向量数据库)中。课程智能体定期回顾记忆,可能会形成新的、更具体的目标。例如,“我有羊毛了,可以尝试合成一张床来跳过夜晚”。
  4. 开放式目标栈管理:智能体会维护一个动态的目标栈。高级目标(如“获得钻石”)会被分解为低层目标(“挖到铁矿石”、“制作铁镐”)。低层目标在完成过程中产生的新信息(“在地下发现了岩浆池,钻石常在附近”),又可能修正或新增高层目标。这个过程完全由数据驱动,每一次运行都可能产生独特的生存故事。

5. 实战避坑与进阶调优指南

在实际运行和改造Odyssey的过程中,我积累了不少经验教训。这里分享几个关键点,希望能帮你少走弯路。

5.1 常见部署与运行问题排查

问题现象可能原因排查与解决思路
启动后智能体不动,控制台无错误1. Node.js服务未启动或端口被占用。
2. LLM后端服务未响应或API格式不匹配。
3. Minecraft服务器连接失败。
1. 检查NODE_SERVER_PORT端口是否被其他进程占用,查看Node服务日志。
2. 用curl命令手动测试LLM后端API (curl -X POST http://127.0.0.1:8000/v1/completions ...) 是否返回有效结果。
3. 确认Minecraft服务器IP、端口正确,且防火墙已放行。可以先用官方Minecraft客户端尝试连接。
智能体执行动作错误(如对着空气挖掘)1. 游戏状态同步延迟。
2. Mineflayer插件识别方块/实体失败。
3.env_wait_ticks参数设置过小。
1. 增加env_wait_ticks的值(如从20调到40),给游戏更多反应时间。
2. 在代码中增加调试日志,打印出智能体“认为”它正在挖掘的方块坐标和实际类型,对比验证。
3. 检查Mineflayer的collectblock等插件是否编译成功,并确认Minecraft服务器版本与插件兼容。
LLM返回无关或错误指令1. 提示词(Prompt)设计不佳。
2. 微调模型未正确加载或质量不高。
3. 技能库描述与LLM理解不匹配。
1. 查阅odyssey/prompts目录下的提示词模板,尝试简化或增加更明确的约束(如“你必须从给定的技能列表中选择”)。
2. 确认LLM后端加载的确实是微调后的MineMA模型权重,而非原始LLaMA。
3. 优化技能库中每个技能的描述,使其更精确、无歧义,并包含关键前置条件。
任务进行到一半卡住或进入死循环1. 技能执行失败但未触发异常处理。
2. LLM在几个相似技能间摇摆不定。
3. 环境状态感知出现偏差(如认为背包有物品但实际上没有)。
1. 在技能执行函数中添加更健壮的异常捕获和重试机制。
2. 在动作智能体的提示词中增加“避免重复执行相同无效动作”的指令,或设置最大重试次数。
3. 在执行关键操作(如合成)前后,强制同步并打印背包状态,确保感知与事实一致。

5.2 性能与效果调优心得

  1. LLM模型选型与成本权衡:官方测试使用了LLaMA-3 8B和70B模型。70B模型规划能力更强,但推理速度慢,成本高。对于本地实验,7B/8B级别的模型(如LLaMA-3-8B, Qwen1.5-7B)是更实际的选择。可以考虑使用量化技术(如GPTQ, AWQ)在消费级显卡上运行。关键不在于模型绝对大小,而在于领域微调的质量。一个在高质量《我的世界》数据上微调过的7B模型,其表现可能远超未微调的70B通用模型。

  2. 技能库的扩展与优化:Odyssey开源的技能库是一个绝佳的起点,但绝非终点。你可以根据自己想要智能体完成的新任务来扩展它。

    • 添加新技能:例如,如果你想让它“钓鱼”,你需要编写一个fish()函数,调用Mineflayer的钓鱼API,并将其描述(“使用钓鱼竿在水中钓鱼,有机会获得鱼类、宝藏等物品”)添加到技能库JSON中。
    • 优化技能描述:技能的文本描述直接影响嵌入检索的准确性。描述应尽可能包含动作、目标对象、常用场景和前置条件。例如,“shearSheep():使用剪刀右键点击绵羊,以获得1-3块羊毛。需要手持剪刀,且目标为绵羊。”
  3. 提示词工程是关键:Odyssey中各个智能体的能力很大程度上受限于给LLM的提示词。不要害怕修改prompts目录下的.txt文件。例如,在动作智能体的提示词中,可以更强调“基于当前背包物品和周围环境做决定”,或者加入“如果上一个动作失败了,请分析原因并尝试另一种方案”的指令,能显著提升智能体的鲁棒性。

  4. 模拟速度与真实性的平衡:为了快速实验,你可能会调快游戏刻(tick)。但有些游戏机制(如作物生长、怪物生成)依赖于真实时间。过快的时间流速可能导致智能体无法观察到这些长期过程。建议在测试不同任务时调整时间设置:测试战斗和采集时可用较快速度,测试农业和探索时则应接近真实速度。

5.3 从Odyssey出发:你的自定义智能体实验

Odyssey不仅是一个可运行的系统,更是一个强大的研究平台。你可以基于它进行多种有趣的实验:

  • 多智能体协作:项目已更新了多智能体框架。你可以尝试创建两个智能体,一个负责采矿,一个负责耕种,并让它们通过共享的“仓库”交换资源,观察它们能否自发形成分工。
  • 引入视觉模型:目前的Odyssey主要依赖游戏API获取状态。你可以尝试集成一个视觉语言模型(VLM),让智能体通过“看”屏幕像素来感知世界,这更接近人类玩家的方式,也能处理API无法直接提供的信-息(如判断悬崖的深度)。
  • 强化学习微调:将LLM的决策作为高级策略,其选择的技能成功率可以作为奖励信号,用强化学习(RL)进一步微调LLM的权重,使其决策更精准。这就是所谓的“LLM+RL”混合训练范式。

运行Odyssey的过程,就像在培育一个数字生命。你会为它成功合成出第一把铁镐而欣喜,也会为它深夜被苦力怕炸得晕头转向而忍俊不禁。更重要的是,通过观察和调试它的行为,你能更深刻地理解当前AI智能体的长处与局限,以及让机器理解并适应开放世界的巨大挑战。这个项目为我们打开了一扇窗,让我们得以窥见未来通用人工智能在复杂环境中自主学习和成长的雏形。

http://www.jsqmd.com/news/705618/

相关文章:

  • XLeRobot终极指南:如何用660美元打造你的家庭双手机器人
  • Playwright Stealth:如何让你的自动化脚本像真人一样浏览网页?
  • VS Code 远程容器开发效率跃迁指南(2024企业级调优白皮书)
  • 破解海投内卷:留学生如何通过“影子就业市场”斩获未公开的优质科技 Offer
  • 机器学习过拟合问题解析与实战解决方案
  • 中国企业DevOps工具链选型趋势:本土化与安全可控成关键决策因素
  • 决策树模型中的有序编码优化技巧
  • SSHFS-Win深度指南:在Windows上挂载远程Linux文件系统的7个关键技术
  • LSTM网络原理与Keras实现实战指南
  • 跨越代码与资本的巅峰:量化开发工程师(Quant Developer)的硬核进阶之路
  • 【MCP 2026 LB架构生死线】:3类不兼容旧LB协议、2种TLS 1.3握手冲突、1个被忽略的时钟漂移阈值(附自动检测脚本)
  • WeChatExporter终极指南:3步实现微信聊天记录永久备份
  • FPGA神经形态处理器设计与脉冲神经网络实现
  • JavaScript部分JSON解析器:处理流式与不完整数据的工程实践
  • 【限时公开】微软内部未文档化的 devcontainer.json 隐藏字段:3个 undocumented 属性让构建速度飙升2.8倍
  • React 的核心设计理念是什么?并列举三大核心特性。
  • Ludusavi:3步轻松备份你的游戏存档,再也不怕进度丢失!
  • Go语言环境搭建与第一个程序详解
  • 基于 Phi-3.5-Mini-Instruct 的 Java 微服务智能日志分析系统
  • 车载以太网服务发现失效导致OTA中断(MCP 2026第4.2.1条强制条款深度拆解)
  • 深度解析HotGo插件化架构:从微核设计到系统扩展的实战经验
  • 【MCP 2026国产化部署终极指南】:覆盖麒麟V10/统信UOS/海光/鲲鹏全栈适配的7大避坑清单与3小时极速上线方案
  • 基于微软技术栈构建企业级智能体应用:从框架设计到工程实践
  • 告别手动点击:如何用Python脚本化COMSOL多物理场仿真工作流提升10倍效率
  • BigQuery ML UI升级:可视化建模与模型管理实战
  • 从POC到GA:MCP 2026多租户加密在Kubernetes+SPIFFE环境中的零信任密钥注入全流程(含OpenSSF审计评分98.6)
  • WPF DataGrid customize behavior with multiple commands and command parameters then invoke in mvvm
  • 3个关键步骤实现稳定黑苹果系统:从硬件兼容到完美驱动
  • Windows 10/11 下 R 4.2.2 与 JAGS 4.3.1 版本匹配避坑实录:手把手搞定 infercnv 环境搭建
  • Creality Print:如何用开源切片软件打造完美3D打印作品?