多 Agent 系统的核心问题不是“创建多个 LLM”,而是:

如何让多个具有不同职责的 Agent,在共享目标下进行任务分工、通信、协作,并根据环境变化动态调整角色。

可以把它理解成一个“AI团队”。

例如一个机器人云平台:

规划 Agent:负责任务拆解

导航 Agent:负责路径规划视觉 Agent:负责识别

控制 Agent:负责运动控制

诊断 Agent:负责故障分析

它们不是同时乱跑,而是需要一个协作机制

一、多 Agent 基本架构

典型架构:

                  用户任务

                     |
                     ↓

              Coordinator Agent
              (调度/管理Agent)

                     |
        --------------------------------

        ↓              ↓              ↓

 Planning Agent   Vision Agent   Control Agent

        ↓              ↓              ↓

     Tools          Tools          Tools


                     |
                     ↓

              Environment

其中:

Coordinator Agent(协调者)

类似项目经理:

负责:

理解目标

分配任务

调度 Agent

处理冲突

动态切换

二、Agent之间如何通信?

主要有三种方式。

方式1:中心化通信(最常用)

所有 Agent 通过一个 Manager 通信。

例如:

        User

         |
         ↓

      Manager

   /     |      \

Plan  Vision  Control

消息:

{
 "from":"planner",
 "to":"navigation",
 "task":{
    "goal":"move to room 101"
 }
}

优点:

简单

容易

控制易调试

缺点:

Manager压力大

单点故障

适合:

企业Agent、机器人系统。

方式2:去中心化通信

Agent之间直接交流:

Planner
   |
   |
Vision ---- Control
   |
Navigation

例如:

Vision:

发现障碍物

直接通知Navigation

优点:

灵活

扩展性好

缺点:

协议复杂

容易混乱

适合:

大型Multi-Agent。

方式3:黑板模式(Blackboard)

多个 Agent 共享一个状态空间。

类似:

          Blackboard

              |
 --------------------------------

 |              |                      |

Planner      Vision        Control

例如:

共享状态:

{
 "robot_position":[3,5],
 "battery":20,
 "obstacle":"chair"
}

Agent读取和修改。

类似机器人系统里的:

ROS Topic

Shared Memory

Redis

三、Agent如何分工?

核心是:

Role Definition(角色定义)

每个 Agent 有:

Agent Profile

{
 name:
 capability:
 input:
 output:
 tools:
 constraint:
}

例如:

Navigation Agent:

能力:

路径规划

输入:

地图
目标点

输出:

path

工具:

A*
Dijkstra
ROS navigation

Vision Agent:

能力:

目标检测

输入:

camera image

输出:

object location

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐