Aiplayer Mc Bot — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Aiplayer Mc Bot (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
一个基于 LLM(默认 DeepSeek,兼容任意 OpenAI 格式接口)的 Minecraft 自主决策机器人。玩家在游戏里对 Bot 说话,Bot 自主规划并执行动作。
游戏内 @bot1 发消息
│
▼
Control/(Node.js 游戏交互)── FastAPI HTTP :8000 ──► Decision/(Python AI 决策)──► LLM API
Mineflayer + pathfinder POST /plan/{bot_id} OpenAI SDK + 结构化输出Control/:Node.js 层,负责与 Minecraft 交互(Mineflayer)、执行动作、维护聊天历史Decision/:Python 层,负责调用 LLM 做规划 / 反思 / 生成技能,通过 FastAPI 提供 HTTP 接口mc/
├── Control/ # Node.js 游戏交互层
│ ├── launcher.js # 多 Bot 启动器(node launcher.js 3)
│ ├── bot/index.js # Bot 核心:监听聊天、规划-执行-续行主循环、敌怪监控
│ ├── bot/history.js # 聊天历史(进程内内存,最多 50 条)
│ ├── core/registry.js # 工具注册中心(自动扫描 / 热更新 / 同步 tools.json)
│ ├── tools/ # 22 个原子工具,一个工具一个文件
│ ├── actions/index.js # 动作执行入口 / 任务状态收束 / 保存技能
│ ├── python/client.js # FastAPI 客户端(状态采集 + 请求规划 + 执行动作)
│ ├── commands/quick.js # 终端快捷指令(!背包 等)
│ ├── utils/ # 日志、规划响应解析
│ ├── config.json # Minecraft 服务器地址、fastapi_url 等
│ └── package.json # 依赖:mineflayer、mineflayer-pathfinder
├── Decision/ # Python AI 决策层
│ ├── main.py # FastAPI 入口(/plan /reflect /saveSkill /health)
│ ├── server.py # 规划 / 反思 / 技能保存逻辑
│ ├── LLMAgent.py # LLM 客户端(AsyncOpenAI,重试与错误分类)
│ ├── LLMData.py # pydantic 结构化输出模型
│ ├── skill_manager.py # 技能加载 / 查询 / 保存
│ ├── prompts/ # decide / reflect / generateSkill 提示词(YAML + Jinja2)
│ ├── skills/ # 已保存的技能(每技能一个目录)
│ ├── config.py # 配置读取(根目录 .env)
│ └── requirements.txt # Python 依赖
├── docker-compose.yml # 一键 Docker 启动(control + decision)
├── Control/Dockerfile # Node 镜像
├── Decision/Dockerfile # Python 镜像
└── .env.example # 环境变量示例(复制为 .env 后填写)前置:Node.js 18+(推荐 24)、Python 3.10+、一个 Minecraft 服务器(默认离线模式连接)。
cd Control
npm install
cd ..
pip install -r Decision/requirements.txt复制 .env.example 为 .env 并填写:
OpenAI_API_KEY=你的APIKey
LLM_MODEL=deepseek-v4-flash # 模型名,可按需修改
MODEL_BASE_URL=https://api.deepseek.com # OpenAI 兼容接口地址编辑 Control/config.json:
host:Minecraft 服务器地址(本地服务器填 127.0.0.1,局域网填对应 IP;Docker 运行时保持默认 host.docker.internal)Control/bot/index.js 的 mineflayer.createBot 中取消注释 port / versionBot 默认以离线模式登录,用户名固定为 AIPlayer1(多 Bot 时依次为 AIPlayer2…)。
终端 1 —— 启动 Python 决策服务(项目根目录):
$env:PYTHONPATH = "$PWD\Decision"
uvicorn Decision.main:app --port 8000(cmd 对应:set PYTHONPATH=%CD%\Decision,再运行同一条 uvicorn 命令;开发时可加 --reload)
终端 2 —— 启动 Bot:
node Control/launcher.js 1不带参数直接 node Control/launcher.js 会交互式询问启动几个 Bot;node Control/launcher.js 3 启动 3 个。
游戏内对 Bot 说话,消息以 @bot1 开头(多 Bot 时用 @bot2、@bot3…):
@bot1 帮我挖点钻石
@bot1 我背包里有什么?
@bot1 跟着我也可以在运行启动器的终端里输入快捷指令(不经过 LLM,直达动作执行)。不带 @botN 会分发到所有 Bot,带 @botN 只发给指定 Bot:
!背包 !物品 !状态 !坐标
!附近实体
!保存技能 转圈
!注册工具 {"name":"Xxx","args":["a"],"class":"DynamicTool","description":"...","code":"..."}# 先配置根目录 .env(同上)
docker compose up --builddocker-compose.yml 会启动 decision(自动加载根目录 .env)和 control 两个容器,控制层通过 http://decision:8000 访问决策层。
continue 字段自主决定何时续行,兼顾实时性与多步任务tools/ 目录下一个文件,注册中心自动扫描、目录监听热更新,变更自动同步 tools.json 供 Python 端热重载GetState / GetAroundBlocks,把最新状态注入 promptskillProgress 逐段续行推进launcher.js N 一键启动多个独立 Bot 进程,注册 / 注销自动上报Node.js(mineflayer 4.x + mineflayer-pathfinder)、Python 3.10(FastAPI、OpenAI SDK、pydantic)、任意 OpenAI 兼容 LLM API(默认 DeepSeek)。
核心功能已完成:Docker 化、工具热更新、环境状态注入、敌怪监控均已就绪。更详细的技术说明见 DEVELOPER.md。
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.