上一篇我们聊了Agent的工具调用——怎么让AI从"只会说"变成"能动手"。
提示词写好了,记忆加上了,工具也接好了——你的单个Agent已经很强了。它能记住你的喜好,能调用API发邮件、查天气、搜信息。
但很快你会遇到一个新问题:一个Agent忙不过来。
你让它"帮我做一份竞品分析报告",它需要先搜索资料、再整理数据、再写分析、再排版。每一步都要等上一步做完,整个流程串行执行,慢得让人崩溃。而且一个Agent同时要扮演"搜索专家""数据分析师""报告写手"多个角色,结果每个都不够专业。
这就像一个创业公司只有老板一个人,采购、销售、财务、客服全干——能活,但干不大。
真正厉害的不是一个全能Agent,而是一群专精Agent的协作。
今天我们进入Agent系列的第五篇——多Agent协作架构。
为什么需要多Agent
先问一个问题:为什么公司要设部门?
因为分工出效率。让专业的人干专业的事,比一个人干所有事强太多。
AI Agent也是一样的逻辑。
单Agent的问题:
- 上下文窗口有限,任务一复杂就"记不住"
- 角色切换频繁导致输出质量下降(一会儿当搜索员,一会儿当分析师)
- 无法并行处理,所有任务排队执行
- 出错了整个流程要从头来
多Agent的好处:
- 每个Agent专注一件事,输出质量高
- 可以并行执行,多个Agent同时工作
- 某个Agent出错只影响局部,不用全部重来
- 更容易扩展——需要新能力,加一个Agent就行
最简单的多Agent架构:经理+员工
多Agent听起来高大上,其实最基本的模式非常直观——就是一个经理带一群员工。
用户 → 经理Agent(协调者)
↓
┌────┼────┐
↓ ↓ ↓
搜索 分析 写作
Agent Agent Agent
工作流程:
- 用户给经理Agent一个任务:"帮我分析一下最近AI编程工具的市场格局"
- 经理Agent拆解任务:
- 任务1:搜索最近3个月AI编程工具的新闻和数据
- 任务2:整理和分析搜索结果,提取关键数据
- 任务3:把分析结果写成一份结构清晰的报告
- 经理把任务分派给专门的Agent
- 各Agent完成后把结果交回给经理
- 经理汇总检查,交付给用户
用代码来表示的话,核心思路大概长这样:
# 伪代码,展示核心思路
class ManagerAgent:
def __init__(self):
self.search_agent = SearchAgent()
self.analysis_agent = AnalysisAgent()
self.writing_agent = WritingAgent()
def handle_task(self, user_request):
# 第一步:拆解任务
subtasks = self.plan(user_request)
# 第二步:分派执行
search_results = self.search_agent.run(subtasks["search"])
analysis = self.analysis_agent.run(search_results)
report = self.writing_agent.run(analysis)
# 第三步:质量检查
return self.review(report)
这就是最经典的编排模式(Orchestrator Pattern)。经理Agent负责"想"(规划和协调),员工Agent负责"做"(执行具体任务)。
进阶模式:让Agent之间互相协作
经理模式有个问题——所有信息必须经过经理中转,效率有瓶颈。
更高级的做法是让Agent之间直接对话。
比如你要做一个客服系统:
用户消息 → 意图识别Agent
↓
┌─────┼──────┐
↓ ↓ ↓
退款 技术 投诉
Agent Agent Agent
↕
知识库Agent
技术支持Agent遇到不确定的问题,不用等经理转发,直接问知识库Agent。退款Agent发现是技术问题,直接把对话移交给技术Agent。
这种模式叫协作模式(Collaborative Pattern),Agent之间有直接的通信通道。
实际项目中,很多团队用的是混合模式——重要决策走经理,日常协作Agent之间直接沟通。就像真实公司里,大方向CEO拍板,但日常工作部门之间自己协调。
实战:用现有工具搭多Agent系统
你不需要从零开始造轮子。目前已经有几个好用的多Agent框架:
1. OpenAI Agents SDK(前身Swarm)
OpenAI自己出的框架,核心概念就两个:Agent和Handoff(移交)。
from openai import agents
# 定义专门的Agent
search_agent = agents.Agent(
name="搜索专家",
instructions="你负责搜索和收集信息",
tools=[web_search, database_query]
)
writer_agent = agents.Agent(
name="写作专家",
instructions="你负责把信息整理成报告",
tools=[format_markdown]
)
# 经理Agent可以把任务移交给专门的Agent
manager = agents.Agent(
name="项目经理",
instructions="分析用户需求,分配给合适的专家",
handoffs=[search_agent, writer_agent]
)
2. LangGraph
LangChain团队出的框架,用"图"来定义Agent之间的工作流。适合流程复杂、需要条件分支的场景。
3. CrewAI
特点是用"角色扮演"的思路定义Agent,每个Agent有角色(Role)、目标(Goal)和背景(Backstory)。
from crewai import Agent, Task, Crew
researcher = Agent(
role="AI行业研究员",
goal="收集最新的AI行业数据和趋势",
backstory="你是一个经验丰富的行业分析师,擅长从海量信息中提取关键洞察"
)
writer = Agent(
role="商业报告撰写专家",
goal="把研究数据转化为清晰易读的报告",
backstory="你是顶级咨询公司的报告撰写人,擅长用数据讲故事"
)
选哪个?简单建议:
- 想快速上手 → OpenAI Agents SDK
- 流程复杂、需要精细控制 → LangGraph
- 喜欢直觉式定义角色 → CrewAI
多Agent的坑:别踩
多Agent不是银弹,用不好反而更麻烦。几个常见的坑:
坑1:Agent太多
不是Agent越多越好。3-5个Agent能覆盖大多数场景。Agent一多,协调成本急剧上升,还不如一个Agent干。
就像开会一样——3个人的会议高效,30个人的会议就是灾难。
坑2:职责不清
每个Agent必须有清晰的边界。搜索Agent不应该偷偷开始写分析,写作Agent不应该自己去搜索。职责重叠会导致冲突和重复工作。
坑3:忽略错误处理
Agent A搜索失败了怎么办?Agent B分析结果不靠谱怎么办?必须设计重试和降级机制。
坑4:成本失控
每个Agent每次调用都要消耗Token。多Agent系统的总Token消耗可能是单Agent的5-10倍。在设计时就要考虑成本控制——不是所有任务都需要用最贵的模型。
一个实际的例子
假设你要搭一个"AI新闻助手",每天帮你搜集和整理AI领域的热点新闻:
定时触发 → 协调Agent
↓
┌─────────┼─────────┐
↓ ↓ ↓
搜索Agent 搜索Agent 搜索Agent
(中文源) (英文源) (社交媒体)
↓ ↓ ↓
└─────────┼─────────┘
↓
去重Agent → 排序Agent → 写作Agent → 输出
- 3个搜索Agent并行跑不同的数据源,节省时间
- 去重Agent负责把重复新闻合并
- 排序Agent按热度和重要性排序
- 写作Agent生成最终的新闻简报
这比一个Agent串行搜索→整理→写作快3倍以上,而且每个Agent可以用不同的模型——搜索和去重用便宜的Flash模型,写作用更强的Pro模型,成本可控。
小练习
试着设计一个多Agent系统,解决你工作中的一个实际问题:
- 列出需要哪些Agent(3-5个)
- 画出它们的协作关系(谁指挥谁?谁和谁直接通信?)
- 每个Agent用什么模型(贵的还是便宜的?)
- 想一想:如果某个Agent挂了,系统怎么处理?
不需要写代码,先把架构想清楚。设计一个好的多Agent系统,80%的工作在于想清楚,20%才是实现。
这个系列到这里
从提示词工程到记忆系统,从工具调用到多Agent协作——我们用五篇文章,走完了从"一个聊天框"到"一支AI团队"的完整路径。
回顾一下这个系列的线索:
- 提示词工程——教会Agent思考的方式
- 记忆系统——让Agent记住你
- 工具调用——让Agent动手干活
- 多Agent协作——让Agent组队作战
单独看每一块,都是一个具体的技术点。但串在一起,你会发现一个清晰的方向:AI正在从"回答问题的工具"变成"替你做事的团队"。
这不是未来,这是正在发生的事情。
下一篇预告: Agent系列番外篇——我们聊点不一样的:普通人怎么用Agent赚钱。不讲技术,只讲实操场景和变现思路。那些用Agent接单、做自动化工作流、卖Agent服务的人,到底是怎么赚到钱的?
关注「AI引路者」,每天用大白话帮你搞懂 AI。看完就能用。
📦 回复「AI模板」获取 30 个实用 Prompt 模板,直接复制就能用!
夜雨聆风