S
构建我的第一个多智能体协作系统
AI Agent

构建我的第一个多智能体协作系统

从零搭建一个支持工具调用、共享记忆与任务分发的多 Agent 框架,记录架构选型与踩坑过程。

苏和苏和2025年2月10日2 分钟阅读

为什么需要多智能体

单个 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 预算。

数学公式示例

注意力权重的归一化形式:

Attention(Q,K,V)=softmax(QKdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V

性能数据

指标单 Agent多 Agent
任务完成率62%89%
平均 token 消耗8.2k5.1k
端到端延迟6.4s9.1s

脚注

多智能体协作的早期思想可追溯到黑板系统1


下一步我打算加入自动反思机制,让 Orchestrator 在分发失败后能重新规划。如果你也在做类似的事,欢迎在评论区交流。

Footnotes

  1. Nii, H. P. (1986). The Blackboard Model of Problem Solving.