目录

一、核心优势:从单一智能体到多智能体协作

二、多智能体协作形式

三、实践应用场景

四、智能体间关系与通信结构

五、实战代码:CrewAI 多智能体协作示例(生成AI趋势博客)

1. 环境准备

2. 完整代码

3. 代码说明


一、核心优势:从单一智能体到多智能体协作

单一智能体在处理明确、单一领域问题时效率突出,但面对复杂任务时存在能力局限。多智能体协作模式通过任务分解与专业分工,将高层目标拆分为若干子问题,分配给具备对应工具、数据访问或推理能力的专用智能体,最终通过协作突破单一智能体的能力边界,实现复杂任务的高效解决。

二、多智能体协作形式

多智能体通过多样化的协作形式适配不同任务场景,核心包括以下6类:

  1. 顺序交接:智能体按流程依次处理任务,前一智能体的输出作为后一智能体的输入(明确区分不同智能体的分工,区别于单一智能体的规划模式)。
  2. 并行处理:多个智能体同时推进同一任务的不同部分,后续汇总结果形成完整输出。
  3. 辩论与共识:智能体基于各自视角和信息源展开讨论,通过观点碰撞达成共识或优化决策。
  4. 层级结构:由管理者智能体根据工具/插件能力动态分配任务给工作智能体,再综合所有结果;每个智能体仅管理相关工具组,避免单一智能体承担全部工具操作。
  5. 专家团队:不同领域专长的智能体(如研究员、写作者、编辑)分工协作,完成跨领域复杂输出。
  6. 批评-审查者:一组智能体生成初步输出(计划、草稿、答案等),另一组智能体从政策合规、安全、正确性、质量、目标对齐等维度评审,原生成智能体或最终汇总智能体根据反馈修订;在代码生成、研究写作、逻辑检查、伦理对齐等场景效果显著,可提升系统健壮性、改善输出质量、减少幻觉与错误。

三、实践应用场景

多智能体协作模式已在多个领域落地,典型场景包括:

  1. 复杂研究与分析:模拟人类研究团队分工,如智能体分别负责学术检索、信息总结、趋势提炼、报告整合,高效完成研究项目。
  2. 软件开发:按需求分析、代码生成、测试验证、文档编写等角色拆分任务,输出逐步传递与校验,提升开发效率与质量。
  3. 创意内容生成:以营销活动为例,由市场调研、文案创作、图像设计(集成图像生成工具)、社媒排期等智能体协作完成全流程。
  4. 金融分析:智能体分工负责数据抓取、新闻情绪分析、技术指标分析、投资建议生成,实现金融市场的多维度研判。
  5. 客户支持升级:前线支持智能体处理基础问题,复杂问题自动升级至技术专家、账单专家等专用智能体,体现基于问题复杂度的顺序交接逻辑。
  6. 供应链优化:智能体分别代表供应商、制造商、分销商等供应链节点,协作优化库存管理、物流调度与排程,快速响应需求变化或突发事件。
  7. 网络分析与修复:在自治运维场景中,多智能体协作实现故障定位、分级处理与修复;可集成传统机器学习模型与工具,兼顾现有系统稳定性与生成式AI的创新能力。

四、智能体间关系与通信结构

高效的多智能体系统依赖合理的交互与通信设计,核心结构包括6类:

  1. 单智能体:基础模型,智能体独立运行无需交互,适用于可完全拆分的独立子问题,能力局限于单一任务。
  2. 网络型:去中心化结构,多个智能体点对点直接交互,共享信息、资源与任务,弹性强,但面临通信管理复杂、决策一致性难保障的问题。
  3. 监督者:设置专门的“监督者”智能体,负责协调下属智能体的通信、任务分配与冲突解决;层级清晰、易于管理,但存在单点故障和性能瓶颈风险。
  4. 工具型监督者:监督者不直接指挥,仅为其他智能体提供资源支持、操作指导或分析辅助,以“赋能”替代“控制”,提升系统灵活性。
  5. 层级型:多层监督者架构,高层监督者管理低层监督者,底层为执行操作的智能体;适合复杂问题的分层管理,便于系统扩展与分布式决策。
  6. 定制型:最灵活的结构,针对具体问题或应用场景设计独特的关系与通信规则,可混合前述结构或创新设计;需深入理解多智能体协作原理,谨慎设计通信协议、协调机制与涌现行为,适用于需优化特定性能、适配动态环境或集成专业领域知识的场景。

五、实战代码:CrewAI 多智能体协作示例(生成AI趋势博客)

以下代码基于 CrewAI 框架,构建由“研究员”和“写作者”组成的协作团队,使用 Gemini 2.0 Flash 模型生成 2024-2025 年 AI 趋势博客,采用顺序交接协作模式。

1. 环境准备

需提前安装依赖包,并配置 Google API 密钥(用于调用 Gemini 模型):

pip install crewai python-dotenv langchain-google-genai

在项目根目录创建 .env 文件,添加配置:

GOOGLE_API_KEY=你的Google API密钥

2. 完整代码

import os
from dotenv import load_dotenv
from crewai import Agent, Task, Crew, Process
from langchain_google_genai import ChatGoogleGenerativeAI

def setup_environment():
    """加载环境变量并校验API密钥"""
    load_dotenv()
    if not os.getenv("GOOGLE_API_KEY"):
        raise ValueError("请在.env文件中配置GOOGLE_API_KEY")

def main():
    """初始化并运行AI博客创作团队"""
    # 1. 环境初始化
    setup_environment()

    # 2. 配置语言模型(Gemini 2.0 Flash)
    llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash")

    # 3. 定义智能体(Agent)
    # 研究员:负责调研AI新兴趋势
    researcher = Agent(
        role="高级研究分析师",
        goal="精准查找并总结2024-2025年AI三大新兴趋势,含实际应用与影响",
        backstory="你是拥有5年AI领域研究经验的分析师,擅长从海量信息中提炼关键趋势,注重数据来源的权威性与趋势的实用性",
        verbose=True,  # 输出详细日志
        allow_delegation=False,  # 不允许任务委托
        llm=llm
    )

    # 写作者:负责将研究结果转化为通俗博客
    writer = Agent(
        role="技术内容写作者",
        goal="根据研究结果撰写500字左右的易懂博客,兼顾专业性与可读性",
        backstory="你是专注于科技领域的资深写作者,擅长将复杂技术趋势转化为大众能理解的内容,文风生动且逻辑清晰",
        verbose=True,
        allow_delegation=False,
        llm=llm
    )

    # 4. 定义任务(Task)
    # 研究任务:输出趋势总结(含要点与来源)
    research_task = Task(
        description="全面调研2024-2025年AI领域的三大新兴趋势,重点分析每个趋势的核心技术、实际应用场景、行业影响及权威数据来源",
        expected_output="结构化的趋势总结报告,包含3个趋势的详细要点(每个趋势不少于3条核心信息)及对应的信息来源标注",
        agent=researcher
    )

    # 写作任务:依赖研究任务的输出,生成博客
    writing_task = Task(
        description="基于研究员提供的趋势总结,撰写一篇500字左右的技术博客。要求结构清晰(含标题、引言、3个趋势分点、总结),语言通俗,避免专业术语堆砌,突出趋势对普通用户或企业的实际价值",
        expected_output="完整的500字AI趋势博客,格式规范、无语法错误、可读性强",
        agent=writer,
        context=[research_task]  # 声明任务依赖,确保研究任务先执行
    )

    # 5. 组建团队(Crew)并指定协作流程
    blog_creation_crew = Crew(
        agents=[researcher, writer],
        tasks=[research_task, writing_task],
        process=Process.sequential,  # 顺序执行流程(先研究后写作)
        verbose=2  # 输出更详细的协作日志
    )

    # 6. 执行团队任务
    print("## 启动AI博客创作团队(基于Gemini 2.0 Flash)##")
    try:
        result = blog_creation_crew.kickoff()
        print("\n" + "="*50 + "\n")
        print("## 团队最终输出:AI趋势博客 ##")
        print(result)
    except Exception as e:
        print(f"\n执行过程中发生异常:{str(e)}")

if __name__ == "__main__":
    main()

3. 代码说明

  • 协作逻辑:采用“顺序交接”模式,research_task 先执行,其输出作为 writing_task 的输入,确保写作内容基于真实调研结果。
  • 智能体设计:每个智能体有明确的角色、目标和背景故事,CrewAI 框架会根据这些定义约束智能体的行为的输出风格。
  • 任务依赖:通过 context=[research_task] 声明任务间的依赖关系,框架自动保障执行顺序。
  • 模型选择:使用 Gemini 2.0 Flash 模型,兼顾响应速度与输出质量,适用于内容创作类任务。

运行代码后,将自动输出完整的 AI 趋势博客,体现多智能体协作的高效分工与成果整合能力。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐