OpenClaw Mindcraft Controller
适用场景
- 用户要用 OpenClaw 或任意外部系统控制
mindcraftBot。 - 用户要求“不要内置 LLM,只走接口调用”。
- 用户需要:读取状态、查询动作 schema、执行动作、排错与恢复。
快速流程
- 确认服务已启动:
node main.js - 确认配置为外控模式:
settings.js中external_controller_only: true - 用
GET /api/v1/agents找到 agent 名(如andy) - 用
GET /api/v1/agents/:agentName/actions/schema获取动作参数定义 - 用
POST /api/v1/agents/:agentName/actions/execute执行动作 - 用
GET /api/v1/agents/:agentName/state校验动作结果
控制规则
- 动作前先查 schema,不要硬编码参数类型和数量。
- 长动作执行后必须二次读 state,避免“命令发送成功但未达成目标”。
- 异常时先执行
!stop,再做恢复动作。 - 多动作编排推荐“小步执行 + 每步校验”,不要一次提交过长链路。
API 基础信息
- Base URL:
http://localhost:8080 - Content-Type:
application/json - 关键接口:
GET /api/v1/agentsGET /api/v1/agents/:agentName/stateGET /api/v1/agents/:agentName/actions/schemaPOST /api/v1/agents/:agentName/actions/execute
详细字段和示例见 reference.md 与 examples.md。
推荐执行模板
- 发现 Agent
- 调用
/agents - 选择
in_game=true的 agent
- 调用
- 加载能力
- 调用
/actions/schema - 缓存 command + params 描述
- 调用
- 执行动作
- 调用
/actions/execute,传command+args
- 调用
- 结果验证
- 读
/state,核对位置、背包、健康、当前动作
- 读
- 失败恢复
- 执行
!stop - 重新规划下一步动作
- 执行
常见故障处理
Agent 'xxx' not found- 先调
/agents,确认 agent 名称。
- 先调
Agent 'xxx' is not connected in game- Bot 未进服;检查 Minecraft 是否开放 LAN 端口,或进程是否重启失败。
- 参数不匹配(args count/type)
- 以
/actions/schema为准重建入参。
- 以
- 命令存在但效果不符合预期
- 读
/state二次确认,再做补偿动作(例如!stop、!goToCoordinates重试)。
- 读
输出要求(给 OpenClaw 的调用层)
- 每次动作调用都记录:
- request payload
- response payload
- state 前后快照(至少位置/背包/健康)
- 失败返回要保留原始
error字段,便于排查。