在无人作战/军事仿真场景中,需智能体系统协调多无人平台(UAV、UGV、机器狗等)完成复杂任务。传统方案依赖人工指令与固定流程,难以应对动态任务和自然语言交互。本项目构建基于 LLM 的多 Agent 协同系统,实现自然语言驱动的任务规划、调度与执行。核心目标:支持自然语言任务输入并自动分解为可执行动作序列;多 Agent 协同(任务规划、调度、会议助手、状态检查等);WebSocket/MQTT 双通道与上位机通信;通过 MCP 协议动态扩展工具能力;Docker 容器化部署,兼容 x86/ARM64。
**整体架构与技术栈:**
基于 LangGraph 构建状态机,采用 Supervisor 架构实现多 Agent 协同。节点间通过 Command(goto=..., update=...) 显式指定下一跳。核心状态 UgvState 包含 messages、action_list、current_action_idx 等。通信层为 WebSocket + MQTT。技术栈:LangGraph、LangChain、MCP、WebSockets、YAML、Docker Compose(支持 x86/ARM64)。设计思路:MCP 与 Agent 解耦,通过回调动态注入;配置驱动;多实例共享镜像。
**负责模块与量化:**
SupervisorFlow(ugv_graph.py,约 1770 行):图构建、节点注册、Command 流转、MCP 注入。AgentServer(约 633 行):配置、MCP 管理器、WebSocket/MQTT、任务循环。多 Agent 封装:TaskPlanning、TaskSchedule、MeetingAssistant 等。量化:总代码约 11,683 行,核心 2,552 行;3 种入口、11+ 节点;x86/ARM64 双架构。
**难点与解决方案:**
MCP 异步加载 → mcp_tools_provider 回调 + refresh_mcp_tools() 异步重建图。LangGraph trace 分散 → 统一 session 或 async 流式。StructuredTool 同步报错 → ReAct 使用异步路径。MQTT 断线 → docker-compose 启动延迟 + keepalive。ARM64 构建 → build_and_export_arm64.sh 用 buildx 导出 tar。配置分散 → 统一 config_manager 按 agent/环境拆分 YAML。