Skip to content

Brain and Tools

ZoyLuo edited this page Jun 5, 2026 · 1 revision

大脑与工具 · Brain and Tools

大脑层把"人话"翻译成"行动"。它只负责高层意图——决定做什么,而不是逐格操作怎么做(那是 Task SystemGoal Engine 的事)。

BrainCoordinator —— 工具调用循环

  1. 收到玩家消息(或 IdleCoordinator 触发)。
  2. 带上结构化世界快照(位置、背包、生命、饥饿、周围方块 / 实体、当前任务)请求 DeepSeek。
  3. 模型返回一个或多个工具调用
  4. ActionDispatcher 逐个派发执行,把结果回传模型。
  5. 循环,直到模型给出最终答复或达到 brain.maxTurnsPerRequest 上限。

上限(maxTurnsPerRequest / maxToolCallsPerTurn)是关键防护——防止模型陷入"逐格手动操作"耗尽 token。见 Configuration

ActionDispatcher —— 派发 + 拦截

除了把工具调用路由到对应处理器,它还做安全拦截:

  • 目标刚失败时,拦下大模型改用 move_to / mine_block / strip_mine(以及 assign_task{move/mine/strip_mine})等手动逐格操作——这类操作既耗轮次,又容易把 bot 挖进水 / 岩浆 / 怪堆送命。拦下后逼模型改用高层目标(mine_ore 自动找矿 / gather 自动找资源)或停下。

ToolRegistry —— 56 个工具

工具分四类,后三类可在 brain 配置里按需开关(见 Configuration):

🎯 高层目标 / 任务(默认开启)

倒推规划与确定性任务的入口——推荐模型优先用这些

achieve_goal · achieve_armor · achieve_workstation · set_goal · advance_goal · goal_status · assign_task · mine_ore · mine_vein · gather · craft · plan_craft · smelt · eat · farm · harvest_crop · harvest · fish · trade · breed · sleep · light_area · stockpile · guard · follow · hold · equip_armor · equip_best_tool · attack · attack_entity · stop · get_task_status · abort_task · inventory · find_container · deposit · deposit_all · withdraw · goto_place · say · tell_bot

🔩 低层动作(exposeLowLevelTools)

细粒度操作,默认可关闭以引导模型走高层路线。

move_to · mine_block · place_block · look_at · select_hotbar

🧩 记忆(enableMemoryTools)

remember · recall · forget · mark_place · set_base

🤝 协调(enableCoordinationTools)

多 bot 任务板。

post_job · list_jobs

完整工具清单与精确分组以 ToolRegistry 源码为准;游戏内 /aibot brain status 可观察实际可用工具与调用情况。

为什么这样设计

纯 LLM 直接操作世界会"幻觉动作"且不可靠。AIBot 让模型只输出意图级工具调用,真正的执行交给确定性引擎——这就是 LLM plans, Tasks execute 的落点。

延伸阅读:Goal Engine · Task System · Safety Net

Clone this wiki locally