为什么需要多智能体
单个 Agent 在面对复杂任务时往往力不从心:上下文膨胀、工具过多、注意力分散。把任务拆给多个职责单一的 Agent,让它们通过共享黑板协作,是当下被验证有效的范式。
核心思路
一个 Orchestrator 负责任务分解与分发,若干 Worker Agent 负责执行,共享一个 Memory Store。
整体架构
关键代码
下面是 Orchestrator 的核心分发逻辑:
from dataclasses import dataclass
from typing import Callable
@dataclass
class Task:
description: str
agent: str # 目标 Agent 名称
class Orchestrator:
def __init__(self, agents: dict[str, Callable], memory: Memory):
self.agents = agents
self.memory = memory
def run(self, goal: str) -> str:
plan = self._plan(goal)
results = []
for task in plan:
agent = self.agents[task.agent]
ctx = self.memory.recall(task.description)
out = agent(task.description, ctx)
self.memory.write(task.description, out)
results.append(out)
return self._summarize(results)踩坑提示:Memory 一定要做摘要压缩,否则长对话会迅速吃光 token 预算。
数学公式示例
注意力权重的归一化形式:
性能数据
| 指标 | 单 Agent | 多 Agent |
|---|---|---|
| 任务完成率 | 62% | 89% |
| 平均 token 消耗 | 8.2k | 5.1k |
| 端到端延迟 | 6.4s | 9.1s |
脚注
多智能体协作的早期思想可追溯到黑板系统1。
下一步我打算加入自动反思机制,让 Orchestrator 在分发失败后能重新规划。如果你也在做类似的事,欢迎在评论区交流。
Footnotes
-
Nii, H. P. (1986). The Blackboard Model of Problem Solving. ↩