dsh-minecraft-p2:在 Minecraft Java 版里接上 DSH 第二名玩家

前言

在 Minecraft Java 版里做自动化,常见做法是自己写 Bot、装服务端插件,或把 AI 留在游戏外只对地图和日志做分析。前者要维护协议与路径逻辑,后者很难让智能体像真实玩家一样持续挖矿、捡物、放方块并与你在同一世界对话。DeepSeek Harness(DSH)把工作流拆成可插拔能力;dsh-minecraft-p2 把「第二名玩家」接到 DSH 会话里——P2 以独立角色连上服务器,你在游戏里聊天下达意图,在 DSH 里用工具查状态、派任务,任务执行结果会回报到当前会话。

这是什么

dsh-minecraft-p2 是维护者 Azetus 发布的 DSH 工作流类插件(社区目录:skillhub 条目)。它通过 Mineflayer 使用原版 Java 协议连接 Minecraft 服务端,在 DSH 侧暴露 p2_* 工具与会话命令,在游戏内以默认用户名 P2_Bot(可配置)出现。README 标明当前为 0.2.x 预览版(package 版本 0.2.1),部分命令与工具参数可能随版本调整。

架构上可以概括为:DSH 插件(bridge)托管子进程 P2Mind,P2Mind 经 provider(mineflayer)连到 Minecraft 服务端;DSH 管会话、工具与插件生命周期,P2Mind 管游戏内任务执行。

核心功能

下面能力均来自项目 README,安装前应结合许可证(MIT)与源码自行判断是否满足你的环境要求;插件以当前 DSH 进程权限运行。

  • 持续执行任务:P2 接受目标后会在游戏中持续执行,并向 DSH 报告完成、受阻或失败。
  • 放置方块与收集材料:可在指定位置放置方块,通过挖掘和拾取掉落物收集材料。
  • 生存与自理:默认遇险尝试撤离、饥饿尝试进食、卡住尝试脱困;自动战斗默认关闭,可按需开启。
  • 个性与记忆:.p2/persona.md 定义说话方式及是否将玩家话语视为命令;记忆按世界与角色分文件保存。
  • DSH 工具集:启动后当前会话可用 p2_status、p2_body、p2_order、p2_observe 等工具,用自然语言或结构化参数派单、观测世界与排查问题。

p2_order 支持的任务动词包括 go / place / dig / collect / equip / use / attack / check / container / craft / build / traverse / hold 等;返回 accepted 表示已受理,结束时 P2 会主动向 DSH 会话汇报。

兼容性与限制

稳定验收范围是 Minecraft Java 版 1.21.1,且服务器须允许离线登录(online-mode=false);不支持 Mojang/Microsoft 正版验证。.p2/config.json 中 minecraft.version 须与服务器一致,默认 1.21.1。仅 Java 版,不支持基岩版。

连接能否成功,取决于服务端是否接受原版客户端,而非模组标签里的「客户端/服务端」字样。通常可连原版或离线服、不强制客户端装模组且不在加入时塞未注册自定义数据包的服;强制模组握手、或加入时发送原版不认识的自定义数据包的服可能无法连接。能登录也不等于能可靠操作模组方块与物品——Mineflayer 只认识协议库中的原版内容,模组环境建议只操作原版方块与物品。

前置条件还包括:已安装 DSH(README 在 DSH 0.2.1-rc.3 上测试);可连的 1.21.1 离线服;连接时服务器内不能有与配置同名的玩家在线。

安装与启用

前置

确认 DSH 与 Node 引擎满足插件 package.json 要求(dsh: >=0.2.1-rc.3 <0.3.0;node: ^22.19.0 || >=24.0.0)。

通过 DSH 界面

  1. 打开 DSH 左侧「插件」→「添加插件」。
  2. 输入 dsh-minecraft-p2 安装默认发布版,或 dsh-minecraft-p2@<version> 指定版本;若有本地 .tgz,填绝对路径。
  3. 按提示启用插件。

通过命令行

将 web 换成你实际使用的 profile(桌面版常用 desktop)。安装默认发布版:

dsh plugin --profile web add dsh-minecraft-p2

安装本地包时,路径含空格请加引号:

dsh plugin --profile web add "/绝对路径/dsh-minecraft-p2-<version>.tgz"

安装或升级后请完全退出并重新启动 DSH,以便宿主重新加载插件。

典型用法

在有项目目录的 DSH 会话中,可先执行 /p2 setup 检查项目目录,再启动 P2。把示例地址和端口换成你的服务器:

/p2 start 127.0.0.1:25575

首次 /p2 start 会在项目目录生成 .p2/ 与默认配置。连接成功后,在游戏玩家列表确认 P2_Bot 已加入,在聊天中试发「P2,你好」。常用会话命令:/p2 status 查看状态,/p2 stop 断开。若要改角色名,先 stop,编辑 .p2/config.json 的 minecraft.username,再重新 /p2 start(连接地址仍由启动命令指定)。

在 DSH 里用工具派单的示例(README 原文):

p2_observe {mode:"find", only:["crafting_table"], radius:16}
p2_order {verb:"go", params:{x:48,y:64,z:30}}

工作区目录结构如下;请将 .p2/ 排除在版本控制之外:

.p2/
  persona.md
  config.json
  memory/<world>/<character>.jsonl
  skills/<name>/SKILL.md
  archive/journal.jsonl

适用场景与注意

适合已在用 DSH 编排智能体、并有一台 1.21.1 离线 Java 服 的开发者或玩家:你想在游戏内多一个可对话、可执行挖矿/收集/放置的第二角色,同时又在 DSH 会话里用工具做观测、排队任务和排错。

使用前务必核对:服务端 online-mode、版本与 config.json 一致、同名玩家未占用;模组服只把「能登录」和「能可靠交互」分开看待。社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与成熟度以仓库现状为准(目录抓取为 0 star),预览版行为以发行说明与 p2_events 等工具自行验证。

结尾

dsh-minecraft-p2 把 DSH 会话与 Minecraft 里的第二名玩家绑在一起:游戏里聊天,DSH 里用 p2_order 等工具细化任务,P2 自己寻路、用工具并在受阻时重试或绕路。进一步说明见仓库 README 与 开发文档;安装入口亦可从 Skillhub 目录页 跳转。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜