☰
【三个月 AI Agent 实战学习】Day 43:多智能体协作入门 —— 从单体智能到群体智能
2026/10/21 2:25:20 网站建设 项目流程

Day 43:多智能体协作入门 —— 从单体智能到群体智能

欢迎来到第四十三天!恭喜你完成了第三阶段(记忆机制与真实世界工具)的全部学习。从今天起,我们正式进入第四阶段——多智能体协作(Multi-Agent Collaboration)。在过去的学习中,我们构建的都是单体 Agent:一个模型、一组工具、一个执行器。但当任务变得复杂时,单个 Agent 往往力不从心——它需要同时扮演产品经理、程序员、测试员,容易顾此失彼。多智能体系统让不同角色的 Agent 分工协作,就像一家公司有 CEO、工程师、设计师各司其职。今天我们将理解多智能体的核心概念,并搭建你的第一个多智能体系统。


一、今日学习目标

  1. 理解多智能体系统的核心思想:分工、协作、专业化。
  2. 掌握三种常见的多智能体协作模式:顺序执行(Sequential)、层级管理(Hierarchical)、辩论(Debate)。
  3. 了解主流多智能体框架:CrewAI和AutoGen的定位与差异。
  4. 安装并配置 CrewAI,跑通第一个多智能体示例。
  5. 通过一个简单的“内容创作团队”案例,体验多智能体协作的流程。

二、详细实现步骤

步骤 1:理解多智能体系统的核心思想

为什么需要多智能体?

单体 Agent 的局限性:

  • 角色冲突:一个 Agent 很难同时是“严格的代码审查员”和“富有创意的产品经理”。
  • 上下文过载:所有工具、所有知识塞进一个 System Prompt,导致模型注意力分散。
  • 错误传播:一步出错,整个任务失败,缺乏交叉验证。
  • 难以扩展:新增功能需要修改整个 Agent,而不是增加一个新角色。

多智能体系统的优势:

  • 专业化:每个 Agent 有明确的角色、目标和工具集,Prompt 更聚焦。
  • 分工协作:复杂任务拆解为子任务,由不同 Agent 并行或串行完成。
  • 交叉验证:一个 Agent 的输出可以被另一个 Agent 审查,提高质量。
  • 可扩展:新增角色不影响现有 Agent,只需定义新的协作流程。

类比:单体 Agent 像“全栈工程师”,多智能体像“一个团队”——产品经理写需求,程序员写代码,测试员找 Bug,最后交付高质量产品。

步骤 2:三种常见的多智能体协作模式

2.1 顺序执行(Sequential)

Agent 按固定顺序依次执行,前一个的输出是后一个的输入。

用户需求 → 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(裁判) │ ▼ 最终结论

适用场景:需要多角度分析的决策,如“投资分析”、“方案评审”。

步骤 3:CrewAI vs AutoGen —— 框架选型
特性CrewAIAutoGen
定位角色扮演式协作,强调“团队”概念对话式协作,强调“群聊”
核心概念Agent、Task、Crew、ProcessConversableAgent、GroupChat
上手难度低,API 直观中等,概念较多
流程控制Sequential / HierarchicalGroupChat / 自定义
适用场景流水线、层级任务辩论、自由讨论
中文支持好好

建议:新手从 CrewAI 入手,理解多智能体协作的基本模式;需要复杂对话时再学习 AutoGen。我们今天先学 CrewAI。

步骤 4:安装并配置 CrewAI
pipinstallcrewai crewai-tools

CrewAI 需要配置 LLM。我们使用 DeepSeek(兼容 OpenAI 格式)。在.env文件中添加:

OPENAI_API_KEY=your_deepseek_key OPENAI_API_BASE=https://api.deepseek.com

或者直接在代码中配置:

importosfromcrewaiimportLLM llm=LLM(model="deepseek/deepseek-chat",api_key=os.getenv("DEEPSEEK_API_KEY"),base_url="https://api.deepseek.com")
步骤 5:第一个多智能体系统 —— 内容创作团队

我们构建一个“内容创作团队”,包含三个角色:

  • 策划总监:负责分析主题,制定内容大纲。
  • 资深写手:根据大纲撰写文章。
  • 校对编辑:审查文章,修正错误,优化表达。

5.1 导入依赖

新建first_crew.py:

importosfromdotenvimportload_dotenvfromcrewaiimportAgent,Task,Crew,Process,LLM load_dotenv()# 初始化 LLMllm=LLM(model="deepseek/deepseek-chat",api_key=os.getenv("DEEPSEEK_API_KEY"),base_url="https://api.deepseek.com",temperature=0.7)

5.2 定义 Agent

# 策划总监planner=Agent(role="内容策划总监",goal="为给定主题制定清晰、有吸引力内容大纲",backstory="你是一位拥有十年经验的内容策划专家,擅长捕捉读者兴趣点,设计逻辑清晰的文章结构。",llm=llm,verbose=True,allow_delegation=False)# 资深写手writer=Agent(role="资深内容写手",goal="根据大纲撰写高质量、有深度的文章",backstory="你是一位文笔流畅、知识渊博的写手,擅长将复杂概念用通俗语言表达,文章风格生动有趣。",llm=llm,verbose=True,allow_delegation=False)# 校对编辑editor=Agent(role="校对编辑",goal="审查文章,修正语法错误,优化表达,确保质量",backstory="你是一位严谨的编辑,对文字有极高的敏感度,能发现最细微的错误,并提出建设性的修改意见。",llm=llm,verbose=True,allow_delegation=False)

5.3 定义 Task

topic="人工智能对教育行业的影响"# 任务1:制定大纲task1=Task(description=f"请为以下主题制定一份详细的内容大纲:{topic}。大纲应包含引言、3-5个核心论点、结论。",expected_output="一份结构清晰的大纲,包含引言、核心论点和结论。",agent=planner)# 任务2:撰写文章task2=Task(description=f"根据大纲撰写一篇约800字的文章,主题:{topic}。要求语言流畅、论据充分、有吸引力。",expected_output="一篇约800字的完整文章。",agent=writer,context=[task1]# 依赖 task1 的输出)# 任务3:校对编辑task3=Task(description="审查文章,修正语法错误、优化表达、确保逻辑连贯。输出最终版本。",expected_output="经过校对和优化的最终文章。",agent=editor,context=[task2]# 依赖 task2 的输出)

5.4 组建 Crew 并执行

crew=Crew(agents=[planner,writer,editor],tasks=[task1,task2,task3],process=Process.sequential,# 顺序执行verbose=True)result=crew.kickoff()print("\n"+"="*50)print("最终输出:")print(result)

5.5 运行

python first_crew.py

你会看到三个 Agent 依次工作:策划总监先输出大纲,写手根据大纲写文章,编辑最后校对。控制台会打印每个 Agent 的思考和输出。

步骤 6:观察与理解

运行后,注意以下几点:

  1. 任务传递:task2通过context=[task1]自动获取task1的输出作为输入。task3同理。
  2. 角色隔离:每个 Agent 只关注自己的职责,Prompt 不会互相干扰。
  3. 顺序执行:Process.sequential确保任务按顺序完成。
  4. verbose 输出:可以看到每个 Agent 的“思考过程”和最终输出。

对比单体 Agent:如果用单体 Agent 完成这个任务,需要在一个 Prompt 中同时包含“策划、写作、校对”三个角色的指令,模型容易混淆角色,输出质量不稳定。多智能体通过角色分离解决了这个问题。


三、常见问题与调试

Q1:CrewAI 安装后导入报错。
→ 确保 Python 版本 >= 3.10。如果使用虚拟环境,确认已激活。可以尝试pip install --upgrade crewai。

Q2:LLM 配置不生效,报错“API key not found”。
→ CrewAI 默认读取OPENAI_API_KEY环境变量。如果使用 DeepSeek,需要设置OPENAI_API_KEY为 DeepSeek 的 Key,OPENAI_API_BASE为https://api.deepseek.com。或者在LLM初始化时显式传入api_key和base_url。

Q3:任务输出没有传递给下一个 Agent。
→ 检查context参数是否正确设置。task2的context=[task1]表示依赖 task1 的输出。如果没有设置,task2 不会自动获取 task1 的结果。

Q4:Agent 输出格式不符合预期。
→ 在 Task 的expected_output中明确描述期望格式。也可以在 Agent 的backstory中强调输出风格。

Q5:执行速度慢。
→ 多智能体涉及多次 LLM 调用,速度自然比单体慢。可以:

  • 使用更快的模型(如 DeepSeek 的轻量版)。
  • 减少 Agent 数量或任务步骤。
  • 对简单任务使用单体 Agent。

Q6:如何查看中间过程?
→ 设置verbose=True会打印每个 Agent 的思考过程。CrewAI 还支持集成 LangSmith 进行可视化追踪(配置LANGCHAIN_TRACING_V2=true即可)。

Q7:CrewAI 和 LangChain 的关系?
→ CrewAI 底层可以使用 LangChain 的 LLM 封装,但它是一个独立框架,专注于多智能体协作。你可以把 CrewAI 看作在 LangChain 之上构建的“团队管理”层。


四、今日总结与作业

今天你完成了:

  • ✅ 理解了多智能体系统的核心思想和优势。
  • ✅ 掌握了三种协作模式:顺序执行、层级管理、辩论。
  • ✅ 了解了 CrewAI 和 AutoGen 的定位与差异。
  • ✅ 安装配置了 CrewAI,并跑通了第一个多智能体系统。
  • ✅ 通过“内容创作团队”案例,体验了角色分工与任务传递。

今日作业(必做):

  1. 修改first_crew.py,将主题改为你感兴趣的话题(如“远程办公的利与弊”),运行并观察输出质量。
  2. 增加第四个 Agent——“SEO 优化师”,负责在文章末尾添加关键词和元描述。调整任务流程,使其在编辑之后执行。
  3. 将Process.sequential改为Process.hierarchical,并指定一个manager_llm(或manager_agent),观察层级管理模式与顺序模式的差异。
  4. (思考题)在“内容创作团队”中,如果写手和编辑对文章风格产生分歧,你会如何设计一个“辩论”模式来解决?请描述你的方案。

明日预告:我们将深入学习 CrewAI 的核心概念:Agent 的角色定义、Task 的依赖管理、Process 的流程控制。你将学会构建更复杂的多智能体系统,并完成第二个项目——“市场调研分析团队”。

有任何问题欢迎随时提问!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询