【三个月 AI Agent 实战学习】Day 43:多智能体协作入门 —— 从单体智能到群体智能 Day 43多智能体协作入门 —— 从单体智能到群体智能欢迎来到第四十三天恭喜你完成了第三阶段记忆机制与真实世界工具的全部学习。从今天起我们正式进入第四阶段——多智能体协作Multi-Agent Collaboration。在过去的学习中我们构建的都是单体 Agent一个模型、一组工具、一个执行器。但当任务变得复杂时单个 Agent 往往力不从心——它需要同时扮演产品经理、程序员、测试员容易顾此失彼。多智能体系统让不同角色的 Agent 分工协作就像一家公司有 CEO、工程师、设计师各司其职。今天我们将理解多智能体的核心概念并搭建你的第一个多智能体系统。一、今日学习目标理解多智能体系统的核心思想分工、协作、专业化。掌握三种常见的多智能体协作模式顺序执行Sequential、层级管理Hierarchical、辩论Debate。了解主流多智能体框架CrewAI和AutoGen的定位与差异。安装并配置 CrewAI跑通第一个多智能体示例。通过一个简单的“内容创作团队”案例体验多智能体协作的流程。二、详细实现步骤步骤 1理解多智能体系统的核心思想为什么需要多智能体单体 Agent 的局限性角色冲突一个 Agent 很难同时是“严格的代码审查员”和“富有创意的产品经理”。上下文过载所有工具、所有知识塞进一个 System Prompt导致模型注意力分散。错误传播一步出错整个任务失败缺乏交叉验证。难以扩展新增功能需要修改整个 Agent而不是增加一个新角色。多智能体系统的优势专业化每个 Agent 有明确的角色、目标和工具集Prompt 更聚焦。分工协作复杂任务拆解为子任务由不同 Agent 并行或串行完成。交叉验证一个 Agent 的输出可以被另一个 Agent 审查提高质量。可扩展新增角色不影响现有 Agent只需定义新的协作流程。类比单体 Agent 像“全栈工程师”多智能体像“一个团队”——产品经理写需求程序员写代码测试员找 Bug最后交付高质量产品。步骤 2三种常见的多智能体协作模式2.1 顺序执行SequentialAgent 按固定顺序依次执行前一个的输出是后一个的输入。用户需求 → Agent A规划 → Agent B执行 → Agent C审查 → 最终输出适用场景流水线式任务如“写文章 → 翻译 → 校对”。2.2 层级管理Hierarchical一个“管理员”Agent 负责任务拆解和分配其他“执行者”Agent 完成子任务管理员最后汇总。┌──────────────┐ │ Manager Agent │ └───────┬──────┘ │ 分配任务 ┌───────────┼───────────┐ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Worker A│ │ Worker B│ │ Worker C│ └─────────┘ └─────────┘ └─────────┘ │ │ │ └───────────┼───────────┘ ▼ Manager 汇总适用场景复杂项目如“开发一个软件”、“组织一场活动”。2.3 辩论Debate多个 Agent 就同一问题发表不同观点通过多轮辩论达成共识或由裁判裁决。Agent A正方 ←→ Agent B反方 │ ▼ Judge Agent裁判 │ ▼ 最终结论适用场景需要多角度分析的决策如“投资分析”、“方案评审”。步骤 3CrewAI vs AutoGen —— 框架选型特性CrewAIAutoGen定位角色扮演式协作强调“团队”概念对话式协作强调“群聊”核心概念Agent、Task、Crew、ProcessConversableAgent、GroupChat上手难度低API 直观中等概念较多流程控制Sequential / HierarchicalGroupChat / 自定义适用场景流水线、层级任务辩论、自由讨论中文支持好好建议新手从 CrewAI 入手理解多智能体协作的基本模式需要复杂对话时再学习 AutoGen。我们今天先学 CrewAI。步骤 4安装并配置 CrewAIpipinstallcrewai crewai-toolsCrewAI 需要配置 LLM。我们使用 DeepSeek兼容 OpenAI 格式。在.env文件中添加OPENAI_API_KEYyour_deepseek_key OPENAI_API_BASEhttps://api.deepseek.com或者直接在代码中配置importosfromcrewaiimportLLM llmLLM(modeldeepseek/deepseek-chat,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com)步骤 5第一个多智能体系统 —— 内容创作团队我们构建一个“内容创作团队”包含三个角色策划总监负责分析主题制定内容大纲。资深写手根据大纲撰写文章。校对编辑审查文章修正错误优化表达。5.1 导入依赖新建first_crew.pyimportosfromdotenvimportload_dotenvfromcrewaiimportAgent,Task,Crew,Process,LLM load_dotenv()# 初始化 LLMllmLLM(modeldeepseek/deepseek-chat,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com,temperature0.7)5.2 定义 Agent# 策划总监plannerAgent(role内容策划总监,goal为给定主题制定清晰、有吸引力内容大纲,backstory你是一位拥有十年经验的内容策划专家擅长捕捉读者兴趣点设计逻辑清晰的文章结构。,llmllm,verboseTrue,allow_delegationFalse)# 资深写手writerAgent(role资深内容写手,goal根据大纲撰写高质量、有深度的文章,backstory你是一位文笔流畅、知识渊博的写手擅长将复杂概念用通俗语言表达文章风格生动有趣。,llmllm,verboseTrue,allow_delegationFalse)# 校对编辑editorAgent(role校对编辑,goal审查文章修正语法错误优化表达确保质量,backstory你是一位严谨的编辑对文字有极高的敏感度能发现最细微的错误并提出建设性的修改意见。,llmllm,verboseTrue,allow_delegationFalse)5.3 定义 Tasktopic人工智能对教育行业的影响# 任务1制定大纲task1Task(descriptionf请为以下主题制定一份详细的内容大纲{topic}。大纲应包含引言、3-5个核心论点、结论。,expected_output一份结构清晰的大纲包含引言、核心论点和结论。,agentplanner)# 任务2撰写文章task2Task(descriptionf根据大纲撰写一篇约800字的文章主题{topic}。要求语言流畅、论据充分、有吸引力。,expected_output一篇约800字的完整文章。,agentwriter,context[task1]# 依赖 task1 的输出)# 任务3校对编辑task3Task(description审查文章修正语法错误、优化表达、确保逻辑连贯。输出最终版本。,expected_output经过校对和优化的最终文章。,agenteditor,context[task2]# 依赖 task2 的输出)5.4 组建 Crew 并执行crewCrew(agents[planner,writer,editor],tasks[task1,task2,task3],processProcess.sequential,# 顺序执行verboseTrue)resultcrew.kickoff()print(\n*50)print(最终输出)print(result)5.5 运行python first_crew.py你会看到三个 Agent 依次工作策划总监先输出大纲写手根据大纲写文章编辑最后校对。控制台会打印每个 Agent 的思考和输出。步骤 6观察与理解运行后注意以下几点任务传递task2通过context[task1]自动获取task1的输出作为输入。task3同理。角色隔离每个 Agent 只关注自己的职责Prompt 不会互相干扰。顺序执行Process.sequential确保任务按顺序完成。verbose 输出可以看到每个 Agent 的“思考过程”和最终输出。对比单体 Agent如果用单体 Agent 完成这个任务需要在一个 Prompt 中同时包含“策划、写作、校对”三个角色的指令模型容易混淆角色输出质量不稳定。多智能体通过角色分离解决了这个问题。三、常见问题与调试Q1CrewAI 安装后导入报错。→ 确保 Python 版本 3.10。如果使用虚拟环境确认已激活。可以尝试pip install --upgrade crewai。Q2LLM 配置不生效报错“API key not found”。→ CrewAI 默认读取OPENAI_API_KEY环境变量。如果使用 DeepSeek需要设置OPENAI_API_KEY为 DeepSeek 的 KeyOPENAI_API_BASE为https://api.deepseek.com。或者在LLM初始化时显式传入api_key和base_url。Q3任务输出没有传递给下一个 Agent。→ 检查context参数是否正确设置。task2的context[task1]表示依赖 task1 的输出。如果没有设置task2 不会自动获取 task1 的结果。Q4Agent 输出格式不符合预期。→ 在 Task 的expected_output中明确描述期望格式。也可以在 Agent 的backstory中强调输出风格。Q5执行速度慢。→ 多智能体涉及多次 LLM 调用速度自然比单体慢。可以使用更快的模型如 DeepSeek 的轻量版。减少 Agent 数量或任务步骤。对简单任务使用单体 Agent。Q6如何查看中间过程→ 设置verboseTrue会打印每个 Agent 的思考过程。CrewAI 还支持集成 LangSmith 进行可视化追踪配置LANGCHAIN_TRACING_V2true即可。Q7CrewAI 和 LangChain 的关系→ CrewAI 底层可以使用 LangChain 的 LLM 封装但它是一个独立框架专注于多智能体协作。你可以把 CrewAI 看作在 LangChain 之上构建的“团队管理”层。四、今日总结与作业今天你完成了✅ 理解了多智能体系统的核心思想和优势。✅ 掌握了三种协作模式顺序执行、层级管理、辩论。✅ 了解了 CrewAI 和 AutoGen 的定位与差异。✅ 安装配置了 CrewAI并跑通了第一个多智能体系统。✅ 通过“内容创作团队”案例体验了角色分工与任务传递。今日作业必做修改first_crew.py将主题改为你感兴趣的话题如“远程办公的利与弊”运行并观察输出质量。增加第四个 Agent——“SEO 优化师”负责在文章末尾添加关键词和元描述。调整任务流程使其在编辑之后执行。将Process.sequential改为Process.hierarchical并指定一个manager_llm或manager_agent观察层级管理模式与顺序模式的差异。思考题在“内容创作团队”中如果写手和编辑对文章风格产生分歧你会如何设计一个“辩论”模式来解决请描述你的方案。明日预告我们将深入学习 CrewAI 的核心概念Agent 的角色定义、Task 的依赖管理、Process 的流程控制。你将学会构建更复杂的多智能体系统并完成第二个项目——“市场调研分析团队”。有任何问题欢迎随时提问