移动系统
移动工具让 AI 能在 Minecraft 世界中自由移动。通过参数组合的设计,move_to 工具可以智能推断目标类型,适配不同的移动需求。
设计理念
参数组合推断目标类型 — move_to 工具通过参数的组合方式自动推断用户意图:
- 传
x/y/z→ 目标为坐标位置 - 传
entity→ 目标为实体跟随 - 传
y仅调整高度 → 目标为高度调整
工具列表
| 工具 | 功能 | 参数 | 返回值 |
|---|---|---|---|
move_to | 移动到目标位置 | x(可选), y(可选), z(可选), entity(可选), break(可选), distance(可选) | 移动结果 |
ride | 骑乘实体 | entity_id | 骑乘结果 |
dismount | 脱离骑乘 | 无 | 脱离结果 |
工具详解
move_to — 移动
移动分为三种模式,通过参数组合推断:
坐标模式 — 移动到指定坐标点:
{
"tool": "move_to",
"params": { "x": 100, "y": 64, "z": 200 }
}实体跟随模式 — 跟随指定实体:
{
"tool": "move_to",
"params": { "entity": "player_uuid", "distance": 3 }
}高度调整模式 — 仅调整 Y 轴高度:
{
"tool": "move_to",
"params": { "y": 80 }
}破坏模式 — 允许破坏方块以通过(适用于被阻挡时):
{
"tool": "move_to",
"params": { "x": 100, "y": 64, "z": 200, "break": true }
}ride — 骑乘
骑乘一个可骑乘的实体(如马、猪、船等):
{
"tool": "ride",
"params": { "entity_id": "实体UUID" }
}dismount — 脱离骑乘
从当前骑乘的实体上下来:
{
"tool": "dismount",
"params": {}
}底层的执行 AI
移动工具由执行 AI 层的 MovementController 和 AStarPathfinder 协同完成:
- AStarPathfinder — 3D A* 寻路算法,计算最优路径,自动避障
- MovementController — 控制假人沿路径移动,处理跳跃、攀爬、游泳等动作
- VeinScanner — 矿脉扫描器(配合
area_operation使用)
错误处理
| 场景 | 错误码 | 说明 |
|---|---|---|
| 无法找到路径 | NO_PATH | 目标位置被完全封锁或不可达 |
| 目标距离过远 | TOO_FAR | 超出最大移动距离 |
| 移动超时 | TIMEOUT | 指定时间内未到达目标位置 |
| 参数无效 | INVALID_PARAMS | 未提供任何目标参数 |
| 不可骑乘实体 | RIDE_FAILED | 目标实体不支持骑乘 |
| 未在骑乘 | DISMOUNT_FAILED | 当前没有骑乘任何实体 |