为什么要多智能体协作?

一个 Agent 再强,也只有一个「大脑」。面对复杂任务时:

  • 认知局限:单个 LLM 的推理深度和知识广度有限
  • 角色冲突:一个 Agent 难以同时扮演研究员、编码者、审稿人
  • 上下文污染:不同子任务的上下文混在一起,互相干扰
  • 可靠性:单点失败 = 整体失败

多智能体协作的核心思想:分工 + 协调 = 涌现能力

五种协作模式

1. 流水线模式(Pipeline)

最简单的协作模式——每个 Agent 负责一个阶段,依次传递:

[Agent A: 研究] → [Agent B: 写作] → [Agent C: 审核]
from crewai import Agent, Task, Crew, Process

researcher = Agent(role="研究员", goal="收集信息", llm=llm)
writer = Agent(role="作家", goal="撰写文章", llm=llm)
reviewer = Agent(role="审稿人", goal="质量把关", llm=llm)

research_task = Task(description="研究 AGI 最新进展", agent=researcher)
write_task = Task(description="写一篇综述", agent=writer, context=[research_task])
review_task = Task(description="审核并修改", agent=reviewer, context=[write_task])

crew = Crew(agents=[researcher, writer, reviewer],
            tasks=[research_task, write_task, review_task],
            process=Process.sequential)

优势:简单直观,易于调试 劣势:无法并行,一个 Agent 卡住全链路阻塞

2. 辩论模式(Debate)

多个 Agent 从不同角度辩论,最终达成更优结论:

[Agent A: 乐观派] ←→ [Agent B: 悲观派]
   [Judge Agent: 裁判]
      综合结论

适用场景:投资决策、技术选型、风险评估

3. 层级模式(Hierarchical)

模拟企业组织架构,Manager Agent 负责调度,Worker Agent 负责执行:

         [CEO Agent]
        /     |      \
  [Manager A] [Manager B] [Manager C]
    /    \       |         /    \
[Worker] [Worker] [Worker] [Worker] [Worker]

优势:可扩展性强,适合大规模任务 劣势:层级过多导致信息失真

4. 群体智能模式(Swarm)

大量同构 Agent 通过简单规则自组织:

[Agent] ←→ [Agent] ←→ [Agent]
   ↕          ↕          ↕
[Agent] ←→ [Agent] ←→ [Agent]
   ↕          ↕          ↕
[Agent] ←→ [Agent] ←→ [Agent]

灵感来源:蚁群算法、鸟群模型 适用场景:大规模信息收集、分布式优化

5. 对手模式(Adversarial)

Agent 之间形成对抗关系,通过博弈提升输出质量:

[Generator Agent] → 生成内容
[Critic Agent]    → 挑毛病
       ↑                ↓
       └── 反馈 ←──────┘

典型应用:GAN 式内容生成、安全测试

通信协议设计

多智能体协作的核心挑战是通信

消息格式

@dataclass
class AgentMessage:
    sender: str          # 发送者 ID
    receiver: str        # 接收者 ID("broadcast" 表示广播)
    type: str            # request / response / notify
    content: str         # 消息内容
    metadata: dict       # 附件信息(文件、数据等)
    reply_to: str = None # 回复的消息 ID

通信模式对比

模式延迟信息保真度适用场景
直接消息一对一协作
共享黑板异步协作
广播全局通知
消息队列解耦协作

共享黑板模式

class Blackboard:
    """共享黑板——所有 Agent 读写同一块共享区域"""
    def __init__(self):
        self.data = {}

    def write(self, agent_id: str, key: str, value: Any):
        self.data[key] = {
            "value": value,
            "written_by": agent_id,
            "timestamp": time.time()
        }

    def read(self, key: str) -> Any:
        return self.data.get(key, {}).get("value")

    def watch(self, key: str, callback):
        """监听某个 key 的变化"""
        ...

工程挑战

1. 死锁检测

Agent A 等待 Agent B 的结果,Agent B 等待 Agent A 的结果 → 死锁。

解决方案:设置全局超时 + 死锁检测器。

2. 上下文同步

多个 Agent 看到不一致的世界状态,导致决策冲突。

解决方案:引入「事实层」(Ground Truth Layer),所有 Agent 读同一份状态。

3. 成本控制

多智能体 = 多倍 LLM 调用成本。

单 Agent:  10 轮 × $0.01/轮 = $0.10
5 Agent 群: 10 轮 × 5 Agent × $0.01/轮 = $0.50  ← 5 倍成本

解决方案:小模型做路由/规划,大模型做核心推理。

框架对比

框架协作模式通信方式适合规模
AutoGen对话式直接消息2-10
CrewAI流水线/层级任务传递3-10
LangGraph任意(可编程)共享状态1-100
OpenAI Swarm轻量级移交函数调用2-5

结语

多智能体协作是通向 AGI 的必经之路。人类文明的进步从来不是靠个体智能,而是靠群体协作。硅基智能体的进化也将遵循同样的路径——从单 Agent 到多 Agent,从流水线到群体智能。

关键不是让每个 Agent 都变强,而是让它们协作的总和大于部分之和


深入探索 Agent 架构设计,请持续关注 硅基 AGI · guijiagi.com

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。