Minecraft 命令行客户端Minecraft 命令行客户端
关于 & 特性
安装
使用方法
配置
Chat Bots
帮助我们翻译
  • Afrikaans
  • اللغة العربية
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • Ελληνικά
  • English
  • Español
  • Suomi
  • Français
  • עברית
  • Magyar
  • Italiano
  • 日本語
  • 한국어
  • Latviešu
  • Nederlands
  • Norsk
  • Polski
  • Português (Brasil)
  • Português (Portugal)
  • Română
  • Русский
  • Српски (Cyrillic)
  • Svenska
  • Türkçe
  • Українська
  • Tiếng Việt
  • 简体中文
  • 繁體中文
GitHub
关于 & 特性
安装
使用方法
配置
Chat Bots
帮助我们翻译
  • Afrikaans
  • اللغة العربية
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • Ελληνικά
  • English
  • Español
  • Suomi
  • Français
  • עברית
  • Magyar
  • Italiano
  • 日本語
  • 한국어
  • Latviešu
  • Nederlands
  • Norsk
  • Polski
  • Português (Brasil)
  • Português (Portugal)
  • Română
  • Русский
  • Српски (Cyrillic)
  • Svenska
  • Türkçe
  • Українська
  • Tiếng Việt
  • 简体中文
  • 繁體中文
GitHub
  • 关于 & 特性
  • 安装
  • 用法
  • 配置
  • 创建简单脚本
  • Chat Bots
  • 创建 Chat Bots
  • 贡献

人工智能辅助开发

本指南记录的是 MCC 的 AI 辅助开发工作流,它是一个真正可运行的闭环,而非基于猜测的补丁生成器。 目标是为智能体提供一个可自主运行的环境:构建 MCC、启动本地服务器、发送命令、检查日志,并循环执行。 一旦这个循环搭建好了,迭代就会更快,也更容易发现并修复回归问题。

如果您想先了解更广泛的贡献者入口,请先参阅 Contributing,然后再返回此处查看代理工作流。

实际目标是一个闭环:

警告

如果你在 Windows 上开发,请使用 WSL2。 该工作流基于 Unix 风格的 shell、tmux、python3 以及 shell 辅助函数构建。 请勿尝试直接在纯 PowerShell 或 CMD 中运行完整的 AI 工作流。

索引

  • 此工作流涵盖的内容
  • 设置
  • Harness 的工作原理
  • 仓库工具
  • 技能
  • 标准开发流程
  • 测试与验证
  • 版本适配说明
  • 示例流程

此工作流涵盖的内容

这是……的工作流程:

  • 本地 MCC 开发
  • 本地离线服务器测试
  • AI辅助调试
  • 机器人创作
  • 协议和版本适配工作
  • 仍应遵循相同规范流程的文档工作

它基于两层构建:

  • tools/ 目录下的工具脚本,负责执行实际操作。
  • .skills/ 目录下的 AI 技能,用于指示智能体何时以及如何使用这些工具。

设置

你只需要做大部分这些操作一次。

Windows:请先安装 WSL2

以管理员身份打开 PowerShell,并运行:

wsl --install

如果 WSL 已经启用,并且你特别想要 Ubuntu,请使用:

wsl --install -d Ubuntu

如果安装卡在 0.0%,请使用:

wsl --install --web-download -d Ubuntu

如果 Windows 提示需要重启,请重启电脑,然后打开 Ubuntu 终端,并在其中完成 Linux 用户设置。

从现在起,请在 WSL 中进行 MCC 的开发。 这包括克隆仓库、构建、运行服务器以及使用 AI 代理工具。

参考:Microsoft WSL 安装指南

Linux 和 macOS:使用 Bash 或 Zsh

Bash 和 Zsh 都可以与 MCC 的辅助脚本配合使用。

检查当前 Shell:

echo $SHELL

注释:

  • Bash 是 Linux 系统上的默认 Shell。
  • Zsh 是现代 macOS 系统上的默认交互式 shell。
  • 辅助脚本 tools/mcc-env.sh 可以从 ~/.bashrc 或 ~/.zshrc 中加载。
安装 Git

Ubuntu、Debian 及其衍生版:

sudo apt update
sudo apt install git

Arch Linux:

sudo pacman -S git

使用 Homebrew 的 macOS:

brew install git

验证:

git --version

参考:Git 下载

安装 .NET SDK 10

MCC 目前基于 .NET 10 构建。 你需要 SDK,而不仅仅是运行时环境。

支持的 Ubuntu 发行版及启用正确软件源的 Ubuntu 系统衍生发行版:

sudo apt-get update && sudo apt-get install -y dotnet-sdk-10.0

Debian 12:

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update && sudo apt-get install -y dotnet-sdk-10.0

Debian 13:

wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update && sudo apt-get install -y dotnet-sdk-10.0

Arch Linux:

sudo pacman -S dotnet-sdk

使用 Homebrew 的 macOS:

brew install --cask dotnet-sdk

验证:

dotnet --version

参考:

  • 在 Ubuntu 上安装 .NET
  • 在 Debian 上安装 .NET](https://learn.microsoft.com/dotnet/core/install/linux-debian)
  • 自制 dotnet-sdk cask
安装 Java 21

本地服务器运行时直接使用 java 命令,因此你的系统 PATH 中需要配置 Java 21。

Ubuntu 及其基于 Ubuntu 的发行版:

sudo apt update
sudo apt install openjdk-21-jdk

Debian:

软件包的可用性因 Debian 发行版而异。 如果您配置的软件源中没有 openjdk-21-jdk,请改从您偏好的供应商处安装最新版本的 JDK 21,而不是强制使用过时的软件包名称。

Arch Linux:

sudo pacman -S jdk21-openjdk

使用 Homebrew 的 macOS:

brew install openjdk@21
sudo ln -sfn "$(brew --prefix openjdk@21)/libexec/openjdk.jdk" /Library/Java/JavaVirtualMachines/openjdk-21.jdk

Homebrew 将 openjdk@21 标记为仅作为 keg 安装,因此创建符号链接这一步非常重要。

验证:

Java 版本

参考:

  • Ubuntu openjdk-21-jdk 软件包
  • Arch jdk21-openjdk 软件包
  • 自制的 openjdk@21 formula
安装 Python 3

RCON 辅助工具和版本适配工具需要 Python 3。

Ubuntu、Debian 及其衍生版:

sudo apt update
sudo apt install python3

Arch Linux:

sudo pacman -S python

使用 Homebrew 的 macOS:

brew install python@3.14

Homebrew 目前通过 python@3.14 这个 formula 提供 Python 3,并将其别名为 python 和 python3。

验证:

python3 --version

参考:

  • Ubuntu python3 软件包
  • Arch Linux 的 python 软件包
  • 自制 Homebrew formula(Python 3.14)
安装 tmux

本地 Minecraft 服务器运行在一个 tmux 会话中,这样在代理构建并重启 MCC 时,服务器仍能持续运行。

Ubuntu、Debian 及其衍生版:

sudo apt update
sudo apt install tmux

Arch Linux:

sudo pacman -S tmux

使用 Homebrew 的 macOS:

brew install tmux

验证:

tmux -V
克隆仓库并初始化子模块

一步完成带子模块的克隆:

git clone https://github.com/MCCTeam/Minecraft-Console-Client.git --recursive

如果你已经克隆了它,但没有包含子模块:

git submodule update --init --recursive
准备服务器版本和反编译源码

从仓库根目录下,使用反编译辅助工具下载官方服务器 JAR 文件并生成反编译后的源代码树:

tools/decompile.sh --version 1.20.6

这会创建 Harness 和版本适配工作流所使用的路径:

  • $MCC_SERVERS/1.20.6/server.jar
  • 《我的世界》官方/1.20.6-反编译版/

如果你正在进行协议相关工作,这一步是必选的。

在 Bash 中加载 MCC shell 辅助脚本

将这一行添加到 ~/.bashrc 文件中:

source "$HOME/Minecraft/Minecraft-Console-Client/tools/mcc-env.sh"

重新加载 Shell:

source ~/.bashrc

这会为你提供工作流所使用的辅助函数:

  • mc-start
  • mc-stop
  • mc-cmd
  • mc-log
  • mc-rcon
  • mcc-build
  • mcc-run
  • mcc-cmd
  • mcc-kill
  • mcc-reload
在 Zsh 中加载 MCC shell 辅助脚本

将这一行添加到 ~/.zshrc 文件中:

source "$HOME/Minecraft/Minecraft-Console-Client/tools/mcc-env.sh"

重新加载 Shell:

source ~/.zshrc

如果你的克隆位于其他位置,请更新 source 行中的路径。

验证环境

运行这些检查:

git --version
dotnet --version
java -version
python3 --version
tmux -V

然后确保加载了辅助函数:

type mc-start
type mcc-build
type mcc-run

装备的运作方式

AI 代理无法像人类玩家那样获得丰富的交互式终端界面。 这就是为什么这个工作流使用挂件,而不是依赖实时键盘输入。

移动部件是:

  • 在 tmux 中运行的本地 Minecraft 服务器
  • mc-rcon 用于执行服务器端命令,例如 /op、/give、/summon 或游戏规则设置。
  • MCC 启动时设置了 MCC_FILE_INPUT=1
  • FileInputBot,用于监控 mcc_input.txt 文件,并将文件中的每一行转换为 MCC 命令或服务器聊天消息。
  • 来自 MCC 和本地服务器的日志,代理可以在每次运行之间检查这些日志。

结果很简单:代理可以无需等待人工坐在终端前,就能修改代码、重新构建、启动应用、注入命令并读取执行结果。

仓库工具

这些是让工作流程变得实用的仓库级工具。

路径作用
tools/mcc-env.sh加载用于主循环的 Shell 辅助函数。
tools/start-server.sh在名为 tmux 的会话中启动一个本地 Minecraft 服务器,并使用 FIFO 管道作为标准输入。
tools/mc-rcon.sh使用 python3 向本地服务器发送 RCON 命令。
tools/decompile.sh必要时下载 MinecraftDecompiler.jar,反编译指定版本的 Minecraft,并获取用于服务器端工作的 server.jar。
tools/diff_registries.py比较两个 Minecraft 版本之间的注册表,以显示哪些调色板需要更新。
tools/gen_item_palette.py根据反编译或报告的注册表数据生成物品调色板源。
tools/gen_block_palette.py根据权威的方块报告生成方块调色板源。
tools/gen_entity_palette.py从注册表报告生成实体调色板源。
tools/gen_entity_metadata_palette.py根据序列化器注册顺序生成实体元数据调色板源代码。
tools/gen_command_argument_registry.py帮助更新现代声明式命令注册表的顺序。
tools/gen_block_shapes.py下载并压缩碰撞形状数据,以支持物理引擎。

还有一点值得一提:

  • MinecraftClient/ChatBots/FileInputBot.cs 是实现基于文件的命令注入功能的核心代码。
  • 当设置 MCC_FILE_INPUT=1 时加载。
  • tools/mcc-env.sh 中的 mcc-run 已经为您设置了该标志。

技能

上面的工具就能完成工作。 .skills/ 目录中的技能文件会告诉 AI 何时使用这些技能,以及理想的输出应是什么样。

技能它有什么用注意事项
mcc-dev-workflow默认的构建、运行、调试和本地服务器循环。这是用于大多数日常 MCC 调试的技能。 它假定已安装 WSL、tmux、Java 以及本地测试框架。
mcc-integration-testing可在本地离线服务器上进行可重复的端到端测试。该技能将其自有脚本放置在 .skills/mcc-integration-testing/scripts/ 目录下。 那些是技能资源,而不是顶级仓库脚本。
mcc-version-adaptation适用于新版本 Minecraft 的协议和调色板更新。当路由、注册表、元数据、调色板或结构化组件发生更改时。
mcc-chatbot-authoring编写或修复内置机器人以及独立的 /script 机器人。该技能将引用和模板打包在 .skills/mcc-chatbot-authoring/ 目录下。 默认为独立 /script 机器人,除非请求使用内置布线。
csharp-best-practices本仓库的 C# 14 / .NET 10 编码指南。当更改涉及 MCC 运行时代码时使用。
humanizer文档与文案优化。适用于文档、指南、发布说明,以及任何可能显得机械化的内容。
mcc-prompt-engineer为 MCC 开发任务生成结构化提示。手动触发。 与用户进行对话,探索代码库,并生成一个包含推理框架、技能引用和子智能体指令的自洽提示。
skill-creator自行创建或提升技能。这是用于优化 AI 工作流的,而非 MCC 的常规功能开发。

重要的区别在于:

  • 仓库工具是可执行脚本和源代码文件。
  • 技能是针对 AI 的指令、参考、模板以及工作流约束。

一些技能还自带资源包:

  • mcc-integration-testing 包含脚本和命令矩阵参考
  • mcc-chatbot-authoring 包含引用和机器人模板
  • skill-creator 封装了脚本、评估工具和审核者资源。

标准开发循环

这就是你应该期望智能体遵循的核心循环。

1. 启动本地服务器

mc-start 1.20.6

查看最近的服务器输出:

mc-log 1.20.6

2. 构建 MCC

mcc-build

3. 启用文件输入运行 MCC

mcc-run

原始形式如下:

MCC_FILE_INPUT=1 dotnet run --project MinecraftClient -c Release -- CursorBot - localhost:25565

4. 通过RCON设置服务器状态

示例:

mc-rcon "op CursorBot"
mc-rcon "gamerule sendCommandFeedback true"
mc-rcon "give CursorBot diamond_sword 1"
mc-rcon "summon minecraft:armor_stand ~ ~ ~"

5. 通过 mcc_input.txt 驱动 MCC

示例:

mcc-cmd "inventory player list"
mcc-cmd "entity"
mcc-cmd "/gamemode creative"

行为:

  • 以 / 开头的行将作为服务器命令或聊天消息发送。
  • 当该行不以“/”开头时,首先将其视为MCC内部命令。
  • 如果一行内容不是 MCC 内部命令,则会回退为普通聊天消息发送。

6. 当……时

阅读 MCC 输出和服务器日志,判断发生了哪些变化,然后决定是继续迭代还是停止。

7。 重建并快速重启

mcc-reload

这就是回归测试的常规流程。

测试与验证

在这个工作流中主要有两种测试方式。

手动验证

对于较小的改动来说,这就足够了:

  • 加入本地服务器
  • 使用 mc-rcon 授予操作员权限
  • 通过 mcc-cmd 运行 MCC 内部命令
  • 通过 mc-rcon 触发游戏玩法或服务器状态变化
  • 检查日志以查找解析错误、断连或输出异常

典型的手动检查:

  • 库存列表与创造模式物品注入
  • summon 后的实体追踪
  • 加入后地形与区块处理
  • 聊天和命令流程
  • 爆炸、粒子和音效事件

脚本化全范围测试

mcc-integration-testing 技能更进一步。 它会将自己的脚本打包到 .skills/mcc-integration-testing/scripts/ 目录下,并期望从 ~/.zshrc 中加载 shell 辅助脚本。

将这些脚本视为技能专属资源。 在直接运行这些技能之前,请先阅读其说明,不要假设它们的行为与顶级仓库工具相同。

该技能旨在用于可重复的离线验证:

  • 聊天
  • 斜杠命令
  • MCC 内部命令
  • 库存管理
  • 实体处理
  • 粒子和音效
  • TNT与爆炸处理

对AI驱动的离线测试有影响的服务器设置:

  • eula=true
  • online-mode=false
  • enforce-secure-profile=false
  • enable-rcon=true
  • rcon.password=test123

如果这些设置错了,循环就会很快变得嘈杂。

版本适配说明

版本开发需要比普通 Bug 修复更严格的流程。

重要的规则很简单:

  • 对于较新版本,尤其是 1.21.9+,请以服务器数据报告为准来确定物品和方块的信息。
  • 使用反编译的源代码获取实现细节、字段顺序、编解码器逻辑及序列化器逻辑。
  • 先别停在资源包对比上,还要完成构建并在真实服务器上测试一遍。

通常的顺序是:

  1. tools/decompile.sh --version <ver>
  2. 从 server.jar 生成服务器报告
  3. 运行 tools/diff_registries.py
  4. 重新生成实际已更改的调色板
  5. 更新版本路由和数据包处理
  6. 构建 MCC
  7. 针对实际目标版本进行测试

这正是 mcc-version-adaptation 工具旨在引导完成的工作。

示例流程

以下是本指南旨在支持的四种常见模式。

调试运行时回归问题

使用技能:

  • mcc开发工作流
  • C#最佳实践

典型的循环:

mc-start 1.20.6
mcc-build
mcc-run
mc-rcon "op CursorBot"
mcc-cmd "inventory player list"
mcc-cmd "entity"

然后检查 MCC 的输出,修复代码,并使用:

mcc-reload

建造或修复机器人

使用技能:

  • MCC聊天机器人创作
  • C#最佳实践
  • mcc开发工作流

典型流程:

  1. 决定这是独立的 /script 机器人还是内置机器人。
  2. 当物品栏满时,无法拾取更多物品。
  3. 构建 MCC。
  4. 启动本地服务器并加入。
  5. 通过实时命令、聊天或事件驱动的操作来测试机器人行为。
  6. 请确保清理路径(如 OnUnload())正确无误。

对于独立脚本,技能默认为 /script,除非明确需要使用内置仓库的绑定。

将 MCC 适配到新的 Minecraft 版本

使用技能:

  • MCC版本适配
  • mcc开发工作流
  • MCC集成测试

典型流程:

tools/decompile.sh --version 26.1

生成服务器报告:

cd /tmp
java -DbundlerMainClass=net.minecraft.data.Main \
  -jar "$MCC_SERVERS/26.1/server.jar" \
  --reports --output /tmp/mc_reports

运行注册表对比:

python3 tools/diff_registries.py 1.21.10 26.1 --registry /tmp/mc_reports/reports/registries.json

然后重新生成已更改的调色板,更新路由,编译 MCC,启动目标版本的本地服务器,并在认为工作完成之前运行实时验证。

为工作流本身编写或更新文档

使用技能:

  • 人性化
  • “技能创建者”,如果你是在修改技能本身,而不仅仅是文档的话

典型流程:

  1. 重新阅读相关的技能文件和仓库工具。
  2. 更新指南,使书面流程与实际流程一致。
  3. 翻译时需保持足够具体,以便其他贡献者无需猜测即可照做。
  4. 当工作流本身发生变更时,请一并更新相关技能,而不要让文档落后于自动化流程。
在 GitHub 上编辑此页