AIBot 项目架构图
LLM 高层意图 + 可验证目标规划 + 确定性任务状态机 + Minecraft 原生假玩家执行
flowchart TB
Player["玩家 / 服务器管理员<br/>命令 + Bob 面板 + 自然语言"] --> Entry["Fabric Mod 入口<br/>AIBotMod"]
Entry --> Cmd["/aibot 命令层<br/>spawn, task, brain, verify, deplint, observe"]
Entry --> Net["客户端/服务端网络<br/>AIBotServerNetworking + Payloads"]
Entry --> Tick["服务端 Tick 主循环<br/>TaskManager.tickAll + BotTickCoordinator"]
Cmd --> Manager["AIPlayerManager<br/>生成/移除/持久化 AI 假玩家"]
Manager --> Bot["AIPlayerEntity<br/>真实服务端玩家实体"]
Player --> Client["客户端 Bob 控制面板<br/>Alt/Option + O<br/>状态、背包、快捷动作、聊天"]
Client --> Net
Net --> Bot
Bot --> Perception["感知层<br/>PerceptionCollector<br/>位置/生命/饥饿/背包/周围世界/当前任务"]
Perception --> Brain["大脑协调层<br/>BrainCoordinator"]
Brain --> LLM["DeepSeek / OpenAI 风格接口<br/>DeepSeekApiClient"]
Brain --> Tools["工具注册与调度<br/>ToolRegistry + ActionDispatcher"]
Tools --> HighGoal["高层目标<br/>Goal: HaveItem / MineOre / Armor / Workstation / Farm / Stockpile"]
HighGoal --> Planner["确定性目标规划<br/>GoalPlanner<br/>配方链/矿链/工具等级/冶炼链/食物/护甲"]
Planner --> Executor["目标执行器<br/>GoalExecutor<br/>步骤队列、失败重规划、目标降级拦截"]
Executor --> Tasks["Task 状态机层<br/>Move / Mine / OreDig / Craft / Smelt / Build / Farm / Hunt / Combat / Eat / Stockpile"]
Tools --> DirectTask["直接任务工具<br/>craft, smelt, gather, eat, trade, strip_mine..."]
DirectTask --> Tasks
Tick --> Safety["生存与可靠性安全网<br/>NavSafetyNet / StuckWatcher / DangerWatcher / TpsGuard"]
Safety --> Tasks
Tasks --> Actions["低层动作原语<br/>ActionPack / MovementAction / BlockMiner / DigNav / ToolSelector / BuildAction / InventoryAction"]
Actions --> World["Minecraft 世界<br/>移动、挖掘、合成、熔炼、战斗、农牧、容器交互"]
World --> Perception
Planner --> Data["数据地基<br/>RecipeRegistry / MiningChain / ToolTier / SmeltChain / AcquisitionHints"]
Tasks --> Path["寻路与可站立性<br/>AStarPathfinder / Standability / CostModel / DangerCheck"]
Path --> Actions
Brain --> Memory["记忆与协作<br/>BotMemoryStore / TaskBoard / IdleCoordinator"]
Executor --> Memory
Tasks --> Observe["观察与验证<br/>BotLog / ReplayRecorder / BotProfiler / /aibot verify / /aibot deplint"]
Safety --> Observe
Observe --> Player