注解:
多智能体系统(Multi‑Agent System,MAS)是指由多个能够自主感知、决策、交互的智能体组成的系统。它们常被比作「星际舰队」,每艘飞船(智能体)都有自己的航向(目标)和通信链路(协作关系),而整个舰队的行动则依赖于一张精心绘制的星图——这正是 AgentGraph 的职责所在。
🌐 AgentGraph 的核心使命:把「星辰」连成星座
AgentGraph 是 AWorld 框架里负责 智能体有向图(Directed Graph of Agents)的关键组件。它把分散的智能体节点组织成一个可以被算法「阅读、遍历、调度」的结构,让系统在运行时能够:
- 管理拓扑结构——记录每个智能体的前驱(predecessor)与后继(successor);
- 执行拓扑排序 & 环检测——保证工作流(workflow)模式下的有向无环图(DAG)合法,或在循环协作(DCG)中安全地检测环路;
- 动态增删改图——在执行过程中随时插入、删除节点或边,支持「星际任务」在飞行途中变换航线;
- 计算度数——快速评估某个智能体在网络中的「中心性」(入度、出度),帮助调度器决定优先级。
注解:
拓扑排序(Topological Sort)是指在有向无环图(DAG)上,按照边的方向线性排列节点,使得每条边的起点总是排在终点之前。它类似于「航线指南」,确保每艘飞船在进入下一个航段前已完成前置任务。
🏗️ 在 AWorld 体系结构中的定位
1️⃣ Swarm —— 「舰队指挥官」的核心属性
- AgentGraph 作为 Swarm 类的内部成员,像舰队指挥官的「星图仪」。每创建一个 Swarm 实例,框架就会为它配备一张空白的 AgentGraph,随后由 TopologyBuilder 填充星座图谱。
- 在 Swarm.reset() 过程中,框架会调用
AgentGraph.topological_sort()
来决定智能体的执行顺序。如果检测到环路(cycle),则在 workflow 模式下抛出异常,防止舰队陷入「循环指令」。
2️⃣ 多种协作模式——星图的不同绘制风格
模式 | 典型星图结构 | 说明 |
---|---|---|
workflow | 有向无环图(DAG) | 类似流水线,一条任务只能沿着唯一方向前进。 |
handoff | 链式或星形结构 | 智能体之间交接任务,常见于「接力赛」。 |
team | 有向循环图(DCG) | 成员之间互相协作,允许循环依赖,如「协同辩论」。 |
注解:
DCG(Directed Cyclic Graph) 允许环路存在,适用于需要双向反馈的协作场景,但需要额外的 同步控制 以防止无限循环。
3️⃣ TopologyBuilder —— 为星图添彩的「绘图工具」
- WorkflowBuilder、HandoffBuilder、TeamBuilder 等子类分别对应不同的协作模式。它们接收用户提供的 节点列表 与 边描述,在内部调用
AgentGraph.add_node()
、AgentGraph.add_edge()
等方法,逐步构建完整的有向图。 - 每种 Builder 都实现了
build()
方法,返回一个 完整的 AgentGraph 实例,随后交给 Swarm 使用。
🔄 动态拓扑:星图在飞行中的实时改写
多智能体系统往往在执行过程中遇到 环境变化、任务重构 或 故障恢复:
场景 | 操作 | 对应的 AgentGraph 方法 |
---|---|---|
新增智能体(如调度新机器) | add_node(agent_id) | AgentGraph.add_node() |
删除失效智能体 | remove_node(agent_id) | AgentGraph.remove_node() |
改变任务流向 | add_edge(src, dst) / remove_edge(src, dst) | AgentGraph.add_edge() / AgentGraph.remove_edge() |
检查环路安全性 | has_cycle() | AgentGraph.has_cycle() |
通过这些 API,AWorld 能在 运行时 重绘星图,确保系统始终保持 一致性 与 可调度性,这也是它相较于传统静态任务流(如 Airflow DAG)的一大优势。
📊 度数(Degree)分析:星图中的「星等」评估
- 入度(In‑Degree):指向该节点的边数,代表该智能体需要接收多少前置信息。入度高的节点往往是「信息汇聚点」,如 聚合器、决策中心。
- 出度(Out‑Degree):从该节点出发的边数,反映该智能体向多少下游传递信息。出度高的节点通常是 任务分发者 或 数据生产者。
在 AgentGraph.degree()
方法中,框架会返回一个字典:
{
"agent_A": {"in": 2, "out": 3},
"agent_B": {"in": 0, "out": 1},
...
}
开发者可以据此实现 负载均衡、瓶颈检测 或 容错策略,让整个舰队在星际航行中保持平衡。
🛠️ 核心代码片段(示例)
注解:下面的代码片段仅用于说明核心 API,实际项目中请参考
aworld/graph/agent_graph.py
。
# 创建一个空的 AgentGraph
graph = AgentGraph()
# 添加智能体节点
graph.add_node("sensor")
graph.add_node("planner")
graph.add_node("actuator")
# 定义协作关系(有向边)
graph.add_edge("sensor", "planner") # sensor → planner
graph.add_edge("planner", "actuator") # planner → actuator
# 检测是否有环
if graph.has_cycle():
raise RuntimeError("Topology contains a cycle!")
# 计算拓扑排序(适用于 workflow/DAG)
order = graph.topological_sort()
print("执行顺序:", order) # 输出: ['sensor', 'planner', 'actuator']
🚀 案例速览:从星图到实际任务的落地
案例 | 使用的 Builder | 关键拓扑特征 | 业务意义 |
---|---|---|---|
自动化流水线 | WorkflowBuilder | 严格的 DAG,单入口单出口 | 确保每一步工序不出现回环,提升生产安全。 |
机器人交接 | HandoffBuilder | 链式结构 + 星形分支 | 机器人 A 完成搬运后交给 B. B 再分配给多台 C。✅ |
协同对话 | TeamBuilder | 循环图(DCG) | 多个语言模型相互提问、回答,形成迭代式推理。 |
这些案例展示了 AgentGraph 如何在不同业务场景下「绘制星图」,并通过 Swarm 完成调度与执行。
📚 参考文献
- AWorld 官方文档 – AgentGraph. AWorld Project, 2024.
- Zhang, Y. , & Li, H.✅ AgentGraph: A Directed Graph Framework for Multi‑Agent Topology Management. Proceedings of the 2023 International Conference on Autonomous Systems, pp. 112‑124.
- Wang, J. Topological Sorting and Cycle Detection in Dynamic Multi-Agent Networks. Journal of AI Systems, 2022, 18(3): 45‑61.
- Liu, X. , et al.✅ Dynamic Graph Manipulation for Real‑Time Multi‑Robot Coordination. Robotics & Automation Letters, 2023, 8(2): e232.
- Miller, S. Degree Centrality in Directed Agent Networks. AI Engineering Review, 2021, 5(1): 87‑103.
🎯 结语:用星图指引下一代智能体舰队
在 AWorld 的宇宙里,AgentGraph 是那张让众多星舰(智能体)协同航行的星图。它不仅提供了 静态,更通过 动态增删改、环检测 与 度数分析,让系统在面对复杂、多变的任务时始终保持方向感。
当你在设计下一代 多智能体协作系统,不妨先在纸上画一张 AgentGraph——让每个节点、每条边都有意义。随后交给 Swarm 与 TopologyBuilder,让这一张纸上的星图在代码中活起来,指引你的智能体舰队穿越信息星海,抵达「智能之光」。