文章目录
- 【70.Python+AI】多Agent协作实战:CrewAI与AutoGen的角色分工与信息传递
- 导入语
- 1 ~> 单Agent vs 多Agent
- 1.1 单Agent的瓶颈
- 1.2 多Agent协作流程
- 2 ~> CrewAI:团队角色卡式框架
- 2.1 核心三件套
- 2.2 定义任务与协作
- 2.3 信息传递的本质
- 3 ~> AutoGen:对话驱动式框架
- 3.1 不同的协作哲学
- 3.2 CrewAI vs AutoGen 选型
- 4 ~> 多Agent设计的四条军规
- 思考 && 总结
- 结尾
【70.Python+AI】多Agent协作实战:CrewAI与AutoGen的角色分工与信息传递
📖文章简介:本文系统讲解多Agent协作(Multi-Agent Collaboration)这一2025年Agent开发的热门方向。文章从"单Agent为什么搞不定复杂任务"切入,详解多Agent系统的三大设计核心:角色分工(Researcher/Writer/Reviewer的专业化拆分)、信息传递协议(Agent之间如何交接任务与结果)、以及两大主流框架的对比——CrewAI的"团队角色卡"式定义与AutoGen的"对话驱动"式协作。通过一个"调研→撰写→审核"三Agent协作完成研究报告的完整CrewAI代码案例,配上Mermaid协作流程图,适合已经掌握单Agent开发、想向多Agent系统进阶的开发者。
🎬 个人主页:源码骑士
❄专栏传送门:《Android开发基础》《python基础课程》
⭐️热衷从源码视角拆解技术底层原理,将复杂架构讲得通俗易懂
🎬 源码骑士的简介:
5年Android Framework系统开发经验,曾主导多项系统级性能优化专项
技术栈覆盖Android系统全链路(Binder/Handler/AMS/WMS/启动流程)及Java后端全家桶(Spring + MyBatis + Redis + Oracle)
累计产出原创技术文章100+篇,文章以流程图为特色,被读者评价为"看一篇胜过啃一周源码"
导入语
你写了一个Agent,给它塞了5个工具,让它"调研Python异步框架的市场情况并写一份报告"。结果它一会儿搜索、一会儿尝试总结、一会儿又回头搜索——上下文越滚越长,最后输出的报告前言不搭后语。
问题不在LLM的能力,在于你让一个Agent同时扮演了"调研员"和"撰稿人"两个角色。现实中一个研究员和一个编辑是两个人,AI世界里同样应该如此——这就是多Agent协作的思想:一个Agent查资料,一个Agent写报告,再加一个Agent审核把关。
1 ~> 单Agent vs 多Agent
1.1 单Agent的瓶颈
| 瓶颈 | 表现 | 原因 |
|---|---|---|
| 上下文膨胀 | 执行后期输出质量明显下降 | 搜索原文、中间结论、工具调用全挤在一个context里 |
| 角色混淆 | 既要客观调研又要主观写作 | 一个System Prompt很难同时定义两种人格 |
| 无质量关卡 | 写完直接输出,没人校对 | 自己写的自己看不出问题 |
1.2 多Agent协作流程
三个Agent各司其职,上下文互相隔离,输出通过结构化的"交接单"传递。
2 ~> CrewAI:团队角色卡式框架
2.1 核心三件套
CrewAI 的建模方式非常直观——像组建一个真实团队:
fromcrewaiimportAgent,Task,Crew# 1. 定义角色(Agent = 团队成员 + 岗位说明书)researcher=Agent(role="资深行业研究员",goal="收集全面、准确、有数据支撑的调研信息",backstory="你有10年市场调研经验,擅长从海量信息中提炼关键事实",tools=[search_tool],verbose=True)writer=Agent(role="技术报告撰稿人",goal="把调研素材组织成结构清晰、易读性强的报告",backstory="你曾就职于知名咨询公司的报告团队",)reviewer=Agent(role="质量审核专家",goal="检查报告的事实准确性、逻辑完整性和可读性",backstory="你是出了名的'挑刺王',不放过任何一处表述不清",)2.2 定义任务与协作
# 2. 定义任务(Task = 工单)research_task=Task(description="调研Python异步框架(asyncio/Trio/anyio)的市场应用现状",expected_output="一份包含框架对比、应用案例、趋势的调研纪要",agent=researcher)write_task=Task(description="基于调研纪要撰写2000字技术报告",expected_output="结构完整的Markdown报告",agent=writer,context=[research_task]# 依赖research_task的输出)review_task=Task(description="审核报告,输出修改意见或'通过'结论",expected_output="审核意见列表或PASS",agent=reviewer,context=[write_task])# 3. 组队并执行crew=Crew(agents=[researcher,writer,reviewer],tasks=[research_task,write_task,review_task],verbose=True)result=crew.kickoff()2.3 信息传递的本质
context=[research_task]这一行就是信息传递协议——Writer Agent 执行时,会自动收到 Researcher 任务的输出作为上下文。CrewAI 的交接是"任务产物"级别的,不是"聊天记录"级别的,这保证了传递的是干净的结果而非杂乱的中间过程。
3 ~> AutoGen:对话驱动式框架
3.1 不同的协作哲学
AutoGen(微软开源)把多Agent协作建模为群聊——Agent之间通过多轮对话推进任务:
fromautogenimportAssistantAgent,UserProxyAgent,GroupChat,GroupChatManager analyst=AssistantAgent(name="analyst",system_message="你是数据分析师,负责解读数据并给出结论",llm_config={"model":"gpt-4"})critic=AssistantAgent(name="critic",system_message="你是评审专家,负责质疑analyst的结论,要求证据支撑",llm_config={"model":"gpt-4"})# 群聊管理器自动决定谁该发言groupchat=GroupChat(agents=[analyst,critic],messages=[],max_round=10)manager=GroupChatManager(groupchat=groupchat,llm_config={"model":"gpt-4"})3.2 CrewAI vs AutoGen 选型
| 对比维度 | CrewAI | AutoGen |
|---|---|---|
| 协作模型 | 流水线+角色分工 | 多轮对话+自由讨论 |
| 控制精度 | 高——流程可预测 | 中——对话走向不完全可控 |
| 适合任务 | 流程明确的生产任务 | 需要思辨碰撞的开放任务 |
| 上手难度 | 低——概念贴近真实团队 | 中——GroupChat机制稍抽象 |
| Token消耗 | 较低 | 较高(多轮对话滚雪球) |
4 ~> 多Agent设计的四条军规
1. 角色要少而精:3~5个Agent是上限,再多信息传递成本指数上升2. 交接要结构化:传JSON/Markdown文档,不传聊天记录3. 每个Agent要有明确的"退出条件":什么时候算做完,写进goal里4. 审核Agent必须独立:不能让Writer自己审自己多Agent不是Agent越多越智能。两个配合默契的Agent,胜过五个职责模糊的Agent。
思考 && 总结
- 多Agent解决的是单Agent的"角色过载"问题:调研、写作、审核是三种不同的人格和上下文需求,硬塞给一个Agent只会让输出质量全面下滑。
- CrewAI和AutoGen代表两种协作范式:CrewAI是"流水线分工",适合流程确定的生产场景;AutoGen是"圆桌讨论",适合需要观点碰撞的开放场景。
- 信息传递协议比Agent数量更重要:结构化的任务产物传递(而非聊天记录共享)是多Agent系统不崩溃的关键。
- 控制Agent数量和退出条件:超过5个Agent的系统,调试成本会超过它带来的收益。
多Agent协作的本质不是"多个AI一起干活",而是"用组织架构的思路设计AI系统"。你设计的是团队,不是代码。
结尾
各位小伙伴,本文的内容到这里就全部结束了,源码骑士在这里再次感谢您的阅读!
源码骑士 — Android Framework & 全栈开发
👀关注:跟博主一起从源码视角深耕底层原理,见证每一次成长
❤️点赞:让优质内容被更多人看见,让知识传递更有力量
⭐收藏:把核心知识点存好,在需要时随时查、随时用
💬评论:分享你的经验或疑问,评论区一起交流避坑
🔄一键四连:不要忘记给博主"一键四连"哦!
🗡️寄语:技术之路难免有困惑,但同行的人会让前进更有方向
结语:当你的单Agent开始"精神错乱"时,别急着调Prompt——也许你该给它招几个同事了。不要忘记给博主"一键四连"哦!