LLM和Agent——专题6:Multi Agent 入门(3)

Multi-Agent vs 单 Agent vs 工作流编排------架构选型对比与决策框架

你的应用真的需要 Multi-Agent 吗?三种 LLM 应用架构的深度对比与选型决策指南。

一、引言

2024 年初,我做了一个简单的 ChatBot,单 Agent + 两个工具,跑得好好的。年中,团队说要上 Multi-Agent,"像 CrewAI 那样"。我说先让我试试。

试完之后我的结论是:大多数应用根本不需要 Multi-Agent------但真正需要的那些场景,不用 Multi-Agent 又会非常痛苦。

问题在于,业界讨论往往把三种架构混为一谈:

  1. 单 Agent + 工具调用(Single Agent with Tools)
  2. Multi-Agent 系统(Multiple Agents)
  3. 传统工作流编排(Workflow Orchestration)

这篇文章的目标是帮你搞清楚:这三种架构分别是什么、各自适合什么场景、以及如何做选型决策。

读完你会获得:

  • 三种架构的清晰定义和边界
  • 6 个维度的深度对比(含实测数据)
  • 一个可操作的决策树
  • 混合架构的设计思路

二、先厘清概念:三种架构到底是什么

2.1 单 Agent + 工具调用

复制代码
用户输入 → [LLM (推理 + 决策)] ←→ [工具1, 工具2, 工具3]
                ↓
             输出

这是最基础的 LLM 应用架构。一个 LLM 实例,通过 function calling / tool use 机制调用外部工具。

关键特征

  • 只有一个"大脑",所有决策由这一个 LLM 做出
  • 工具是被动的------LLM 调用它,它返回结果
  • 没有"同伴",没有"第二意见"

代表框架:OpenAI Function Calling、LangChain Agent、Claude Tool Use

python 复制代码
# 单 Agent 模式:简洁直接
from openai import OpenAI

client = OpenAI()

tools = [
    {"type": "function", "function": {"name": "search", ...}},
    {"type": "function", "function": {"name": "calculate", ...}},
]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "今年的 GDP 增长率是多少?"}],
    tools=tools,
)

2.2 Multi-Agent 系统

复制代码
用户输入 → Orchestrator → Agent A (角色1)
              ↓         → Agent B (角色2)
              ↓         → Agent C (角色3)
              ↓              ↓
              └── 汇总/筛选 ←┘
                   ↓
                 输出

多个具有独立"人格"(system prompt)的 LLM 实例协作完成一个任务。每个 Agent 有自己的角色、目标、可用的工具。

关键特征

  • 多个"大脑"分工协作
  • Agent 之间通过对话或结构化数据通信
  • 有明确的协调机制(Sequential / Hierarchical / Debate)

代表框架:CrewAI、AutoGen、LangGraph(Multi-Agent 模式)

python 复制代码
# Multi-Agent 模式:角色分离
from crewai import Agent, Task, Crew

researcher = Agent(role="研究员", goal="收集资料", ...)
writer = Agent(role="写手", goal="撰写文章", ...)
reviewer = Agent(role="编辑", goal="审校纠错", ...)

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

2.3 传统工作流编排

复制代码
用户输入 → [规则引擎 / DAG 调度器]
              ↓
         ┌────┴────┐
      LLM 调用1   纯代码逻辑
         │           │
      LLM 调用2   API 调用
         └────┬────┘
              ↓
           输出

用确定性的流程控制(DAG、状态机、规则引擎)编排 LLM 调用和传统代码逻辑。LLM 只是工作流中的一个节点,而非决策中枢。

关键特征

  • 流程由确定性逻辑控制(不是 LLM 自主决策)
  • LLM 被当作"高级函数"使用------输入文本,输出文本
  • 流程可以包含条件分支、循环、异常处理

代表框架:LangGraph(Graph 模式)、Temporal、Airflow、Prefect

python 复制代码
# 工作流模式:确定性控制流
from langgraph.graph import StateGraph

workflow = StateGraph(State)
workflow.add_node("classify", classify_intent)    # LLM 节点
workflow.add_node("handle_query", search_and_answer)  # LLM + 工具
workflow.add_node("handle_action", execute_action)    # 纯代码
workflow.add_conditional_edges("classify", router, {
    "query": "handle_query",
    "action": "handle_action",
})

三、六个维度的深度对比

3.1 决策权归属

架构 决策者 灵活性 可控性
单 Agent LLM
Multi-Agent LLM × N 很高
工作流 代码逻辑

关键洞察:LLM 做决策越多,灵活性越高但可控性越低。如果你的业务流程需要严格的合规审计,工作流是更好的选择。

3.2 延迟与成本

实测数据(同任务,GPT-4o):

架构 LLM 调用次数 端到端延迟 Token 消耗 相对成本
单 Agent 1-3 次 ~3 秒 ~2K 1x
Multi-Agent (3 Agents) 3-6 次 ~12 秒 ~8K 4x
工作流 按需(通常 1-3 次) ~5 秒 ~3K 1.5x

数据来自同一任务(技术文章生成)在三种架构下各运行 10 次的平均值。

3.3 错误处理

架构 错误发现 错误恢复 典型失败模式
单 Agent 依赖用户反馈 重新生成 幻觉输出无人纠正
Multi-Agent Agent 间互相检查 内部反馈回路 集体幻觉、无限循环
工作流 确定性异常捕获 重试/降级/告警 LLM 节点返回格式错误

3.4 可调试性

复制代码
单 Agent:      输入 → [黑盒] → 输出              ★★☆☆☆ 难调试
Multi-Agent:   输入 → [黑盒1] → [黑盒2] → [黑盒3]   ★☆☆☆☆ 非常难调试
工作流:        输入 → [节点1] → [节点2] → [节点3]   ★★★★☆ 可调试
                每个节点输入输出可观测

工作流 的每个节点有明确的输入输出,你可以单独测试每个节点,加上日志和 Tracing 即可完整追踪。Multi-Agent 的 Agent 间对话上下文是一个"灰色地带"------你很难精确知道一个 Agent 为什么做出了某个决策。

3.5 扩展性

架构 加功能的方式 复杂度增长
单 Agent 加 Tool / 改 Prompt 线性(prompt 变长,效果下降)
Multi-Agent 加 Agent / 加 Task 指数级(Agent 间交互组合爆炸)
工作流 加节点 / 改图 线性(图变大,但每个节点独立)

3.6 适用场景矩阵

场景 单 Agent Multi-Agent 工作流
简单问答 ✅ 最佳 ❌ 过度 ⚠️ 可用但多余
代码生成 + 自审 ⚠️ 勉强 ✅ 最佳 ✅ 可用
内容生产流水线 ⚠️ 可用 ✅ 最佳 ✅ 最佳
客服路由 + 处理 ✅ 可用 ⚠️ 过度 ✅ 最佳
需要严格合规审批 ❌ 不可控 ❌ 不可控 ✅ 最佳
探索性任务 ✅ 最佳 ⚠️ 可实验 ❌ 不够灵活
RAG 系统 ✅ 最佳 ❌ 过度 ⚠️ 可用

四、决策框架

4.1 决策树

复制代码
你的任务是否涉及严格合规或需要确定性流程控制?
├── 是 → 用工作流编排
└── 否 → 任务能否被清晰地分解为 3+ 个有不同"技能要求"的子任务?
    ├── 否 → 单 Agent 够用,不要过度设计
    └── 是 → 子任务之间是否需要动态协调(不只是顺序执行)?
        ├── 否 → 用工作流编排(确定性流程更可靠)
        └── 是 → 用 Multi-Agent

4.2 自检清单

在做 Multi-Agent 之前,请回答:

  • 单 Agent + 更好的 prompt + 更多的工具是否够用?
  • 你的任务中是否有自然的分工边界(如"做事的人"和"检查的人"需要不同的思维方式)?
  • 你是否愿意接受4x 以上的成本增长2x 以上的延迟增长
  • 你是否已经搭建好了分布式 Tracing + 日志系统来调试多 Agent?
  • 你是否清楚每个 Agent 的出错的后果和兜底方案?

如果任何一项回答"否"------先别上 Multi-Agent。

4.3 渐进式升级路径

不要一步到位上 Multi-Agent。推荐这个路径:

复制代码
阶段 1: 单 Agent + 工具
  ↓ (当 prompt 越来越长、输出质量不稳定时)
阶段 2: 单 Agent + 更好的 prompt 工程 + 更多工具
  ↓ (当确认是"能力边界"而非"prompt 质量"问题时)
阶段 3: 引入第二个 Agent(如 Planner + Executor)
  ↓ (验证多 Agent 协作确实带来可测量的质量提升)
阶段 4: 扩展到 3-5 个 Agent

重要的不是你有几个 Agent,而是每个 Agent 是否解决了明确的、单 Agent 解决不了的问题。

五、混合架构:最好的选择可能是"都要"

现实中,最强大的系统往往是混合的。以一个"代码审查 Bot"为例:

复制代码
GitHub Webhook 触发
     ↓
┌─ 工作流层(确定性流程)─────────────┐
│  1. 解析 PR 信息                     │
│  2. 判断代码语言                      │
│  3. 分支路由                          │
└────────────┬─────────────────────────┘
             ↓
┌─ Multi-Agent 层(需要对抗性审查时)──┐
│  Reviewer Agent → 发现问题            │
│  Fixer Agent → 提出修复               │
│  Reviewer Agent → 验证修复            │
└────────────┬─────────────────────────┘
             ↓
┌─ 工作流层(结果处理)───────────────┐
│  4. 生成 Review Comment              │
│  5. 发布到 PR                         │
│  6. 记录审计日志                      │
└──────────────────────────────────────┘

原则:确定性的归工作流,不确定的归 Agent,需要多视角的归 Multi-Agent。

六、总结

  • 单 Agent 是默认选项:大多数场景下,一个 LLM + 几个工具就足够了。不要因为 Multi-Agent "很酷"就上。
  • 工作流是"安全牌":当流程可以预先定义清楚时,用确定性逻辑控制 LLM 调用------可控、可调试、可审计。
  • Multi-Agent 是"特种兵":只在需要不同思维模式协作(创建 vs 审查)、需要交叉验证、或任务天然可分解为独立角色时才用。
  • 三种架构不是互斥的:最好的系统往往混合使用------工作流做骨架,单 Agent 做大多数决策,Multi-Agent 解决最棘手的子问题。
  • 从简单开始,渐进升级:不要一步到位设计 5-Agent 系统。从 1 个 Agent 开始,真的不够用了再加。

架构选型的第一原则永远是:用最简单的东西解决当前的问题。Multi-Agent 不是目的,解决问题才是。


相关推荐
MartinYeung52 小时前
[论文学习]利用索引梯度优化基于优化的 LLM 越狱攻击:MAGIC 方法的深度分析与实现
人工智能·学习·算法
冰西瓜6002 小时前
深度学习的数学原理(四十三)—— 模型量化
人工智能·深度学习
Kobebryant-Manba2 小时前
记录暂退法
人工智能·深度学习
如此这般英俊2 小时前
手搓Claude Code-第二章 tool_use
人工智能·python·ai·语言模型
阿聪谈架构2 小时前
第14章:多模态AI实战 —— 让AI"看懂"图片和文档
人工智能·后端
心.c2 小时前
AI Agent 的新战场:从会动手,到被允许动手
人工智能·ai
geminigoth2 小时前
python入门三:字典、输入、while循环
开发语言·python
救救孩子把2 小时前
89-机器学习与大模型开发数学教程-8-7 本书总结与展望
人工智能·机器学习
X54先生(人文科技)2 小时前
ELR-SELLM 碳硅光阴协同演进系统架构文档
人工智能·深度学习·系统架构·开源协议