Mica v0.1 4B:不生成一个token,如何在真实Minecraft中造出铁镐

40亿参数模型通过零token生成的概率打分机制,在Minecraft中23步完成从零到铁镐的完整工序链。
Mica v0.1 4B是一个运行在真实Minecraft服务器中的游戏智能体,其核心创新在于用"概率打分"替代传统的"文本生成"来做决策——模型不输出任何token,而是直接读取候选命令对应token的概率值进行排序选择。基于llama.cpp的Q5_K_M量化,整套系统运行在单张RTX 3090上,每步决策仅需90-150毫秒,实现了近实时响应。项目作者演示了从空背包出发、历经砍木、合成、采矿、冶炼等23步完整工序链最终获得铁镐的全过程,并附带可视化面板实时展示每步的候选命令与概率分布。模型权重与代码已完全开源,为构建轻量、可靠的游戏智能体或工具调用系统提供了可复现的参考范式。
一个只有40亿参数的模型,在真实的Minecraft 1.20.4服务器里从空背包一路做到铁镐,全程没有生成过一个文本token。这个名为Mica v0.1 4B的项目在Reddit上引发讨论,因为它展示了一种与主流「让大模型输出动作文本」截然不同的智能体控制思路。

核心机制:把决策变成打分,而非生成
大多数游戏智能体的做法是让语言模型"说话"——输出下一步要执行的命令文本,再由解析器转换成游戏操作。Mica走的是另一条路。
它的每一步都遵循同一个循环:先把机器人的实时游戏状态(背包物品、附近方块、周围实体、上一步执行结果)转写成文本;然后Mica对一组候选命令进行评分,选出下一个动作;最后由Mindcraft的技能库(基于Mineflayer的机器人框架)在游戏中执行选中的命令。
关键在于评分环节。Mica从不生成文本,而是直接读取答案标签token的概率值,据此对候选命令排序并挑选最优项。换句话说,模型的输出token数是0——它不写字,只算概率。这种"分类式"而非"生成式"的决策方式,把一个开放式生成问题压缩成了一个受约束的选择问题。
直接读取token概率的技术背景值得展开。语言模型在推理时,对词汇表中每个token都会输出一个logit值,经softmax归一化后即为概率分布。Mica利用的正是这一层:给定当前状态描述作为prompt,模型被要求"选择下一个命令",但并不真正解码生成完整文本——而是直接提取预设候选命令对应token(即"答案标签")的概率值,以此排序。这类方法有时被称为"受限解码"或"分类式推理"(classification-style inference),在意图分类、选择题评测等场景中已有应用,但用于游戏智能体的实时动作选择仍属小众路径。其核心优势在于:候选动作集是封闭的,不存在模型输出格式错误或幻觉式命令;同时由于只需一次前向传播读取特定token的logit,而非自回归逐步生成,推理开销大幅降低。
23步造出铁镐的完整链路
项目作者给出了一段完整的运行记录:从空背包出发,Mica用23次决策完成了从零到铁镐的全部工序。
这条链路完整覆盖了Minecraft早期发展的标准路径:砍原木、合成木板、制作工作台、做出木镐、挖石头、升级石镐、造熔炉、采铁矿、冶炼、最终打造铁镐。对熟悉游戏的人来说,这是一套需要正确排序、且每一步都依赖前一步产出的工序链——任何一步选错都可能让整个流程卡住。
模型能在23步内稳定跑通,说明它在状态理解和工序规划上具备实用级别的可靠性,而非偶然成功。
性能表现:单卡实时决策
运行环境的数据同样值得关注。Mica基于llama.cpp运行,采用Q5_K_M量化,硬件为一张RTX 3090。
在这套配置下,每次决策耗时约90到150毫秒。这个延迟意味着智能体可以近乎实时地响应游戏状态变化,而不需要动辄数秒的推理等待。对于需要连续决策的实时游戏环境,这样的响应速度是能否实际可用的分水岭。
值得强调的是,40亿参数加上量化后,整套系统在消费级显卡上就能跑起来,而不是依赖大规模集群。这降低了复现和二次开发的门槛。
Q5_K_M是GGUF格式下的一种混合量化方案,由llama.cpp项目引入。它对不同层的权重采用不同精度(部分用5-bit、部分用更低精度),在压缩显存占用的同时尽量保留模型精度,通常被认为是质量与体积的较优折中点。以4B参数模型为例,FP16全精度约需8GB显存,而Q5_K_M可将其压缩至约3GB左右,使其能轻松容纳在消费级显卡中。llama.cpp本身是一个纯C/C++推理框架,针对CPU和GPU混合推理做了大量优化,也是目前本地部署开源模型最主流的工具链之一。两者结合使得Mica的整套系统无需依赖CUDA大规模并行集群,普通游戏PC即可运行。
可视化:每一步决策都透明可查
作者附带的演示视频在呈现上做了不少工作。右侧面板会实时展示每一次决策的全过程:候选命令有哪些、Mica给出的概率分布、最终选择、以及执行结果。每一步同时被记录在历史信息流中。
视频对长动作(如行走、挖矿、冶炼)做了加速处理并在画面上标注倍速,连续重试的片段也在剪辑中被压缩。HUD界面与合成台、熔炉的画面则是根据机器人记录的背包状态绘制的。
这种透明化的展示方式,让观察者能够直观理解模型"为什么这么选",而不是只看到一个黑箱输出结果,对于评估智能体决策质量很有帮助。
意义与开放资源
Mica的思路提供了一个有价值的参考:对于动作空间相对有限、可以枚举候选项的任务,用概率打分替代文本生成,既能降低推理开销,又能避免生成式输出的格式错误与幻觉问题。这对构建轻量、可靠的游戏智能体或工具调用系统都有借鉴意义。
作为v0.1版本,它仍处于早期阶段,23步的单次演示还不足以证明模型在更复杂、更长周期任务上的鲁棒性。但作者已开放了模型权重与完整代码:
- 模型权重:Hugging Face上的 sky7350/Mica-v0.1-4B
- 代码与服务器:GitHub上的 akivet/Mica-v0.1-4B
开源意味着社区可以直接验证这套"零token生成"的决策范式在其他任务上的可迁移性,这或许比一次成功的Minecraft演示本身更有价值。
Mineflayer是一个基于Node.js的Minecraft机器人开发框架,提供对游戏协议的底层封装,支持移动、挖掘、合成、交互等操作的API调用。Mindcraft则在Mineflayer之上构建了更高层的"技能库"(skill library),将常见游戏任务(如"砍树""合成木板""前往坐标")封装成可直接调用的函数。Mica选择的候选命令实际上就是这些预定义技能,而非底层原子操作。这种分层架构意味着Mica的决策层只需在有限的高层技能集上做选择,大幅降低了动作空间复杂度,也是其能以零token生成完成长工序链的前提之一。理解这一点有助于判断该方法的适用边界:动作空间越封闭、越结构化,打分替代生成的优势越明显;反之,若任务需要开放式规划或生成新技能,则此范式的局限性会显现。
相关推荐

Claude Code 补测试实战:边界用例、覆盖率与断言怎么写
实战讲解如何用 Claude Code 为项目补单元测试:利用全局上下文生成边界用例、定位未覆盖分支提升覆盖率,并写出有效的断言。对比 Cursor、Trae 等工具,分析 Claude Code 在测试生成准确性上的优势。

测试报告三分钟搞定?Lemon Test Report Skill实测:不造假、可审计
B站UP主分享Lemon Test Report Skill:专为测试人打造的AI报告工具,支持测试总结、回归核验、发布验收三种模式,数据不足自动标记待确认、手工数据冲突当场打假,输出可编辑底稿、网页报告与核验数据包三件套。

把马桶接入树莓派:一场荒诞又硬核的IT实验
一位IT博主用树莓派和浮球开关给马桶接入IP地址,通过GPIO监控冲水事件并与网络断连日志关联。本文拆解硬件接线、上拉电阻原理、0.1秒轮询逻辑与安装过程,并延伸至AI Agent安全监控的同类思路。