CrewAI :当 Agent 学会团队协作

目录

📍 定位

🎯 选型指南

🏗️ 原理与架构

📐 双层架构

👥 Crew:Agent 团队

🌊 Flow:生产级工作流

🎨 设计原则

💎 价值

🧩 解决“单 Agent 天花板”

🚀 从原型到生产

🌍 生态

🚀 快速入门

🧪 最小可运行 Demo

💡 运行后你会看到

🎉 总结


📍 定位

CrewAI 是一个编排多 Agent 协作的 Python 框架

核心理念:让 AI 像真实团队一样工作 👥——有角色、有分工、有流程,它不是“又一个 LLM 调用库”,而是 Agent 团队的运行时

概念

含义

Agent

有 role、goal、backstory 的 LLM 实例

Task

有描述、预期输出、依赖关系的任务单元

Crew

Agent + Task 的容器,控制执行策略

Process

sequential(串行)或 hierarchical(层级管理)

Flow

事件驱动编排,支持条件分支、状态管理


🎯 选型指南

✅ 选 CrewAI,如果你:

  • 想要快速上手,YAML 配置 Agent,10 行代码跑起来 ⚡

  • 需要明确的角色分工和任务流水线

  • 需要生产级事件驱动工作流,且不想手写底层图结构

  • 团队有非技术人员需要参与 Agent 行为调整

✅ 选 AutoGen,如果你:

  • 需要人类深度参与 Agent 的决策过程(医疗、法律、金融)🏥

  • 偏好对话式、讨论式的 Agent 协作(头脑风暴、辩论)🗣️

  • 在微软技术栈(.NET / Azure)上构建

✅ 选 LangGraph,如果你:

  • 需要极其精细的流程控制(每个分支、每个条件、每个循环)🎯

  • 需要原生 checkpointing 和时间旅行调试

  • 已经在 LangChain 生态中深度使用

  • 愿意为控制力付出更多代码量的代价 💪


🏗️ 原理与架构

📐 双层架构

CrewAI 的架构分为两层:

Crew 是内层容器,负责 Agent 团队内部的任务分配和执行。

Flows 是外层编排器,负责多个 Crew 之间的调度、条件跳转和状态传递。

👥 Crew:Agent 团队

一个 Crew 由五个要素构成:

  1. Agent:定义 role(角色)、goal(目标)、backstory(背景故事)。LLM 根据这三要素理解“我是谁、我要做什么”,效果远好于硬编码 prompt 🧠

  2. Task:定义 description(做什么)、expected_output(产出什么)、agent(谁执行),可选 contexthuman_input(人类审批)

  3. Process:Sequential(顺序执行,前一个输出自动成为下一个的上下文)或 Hierarchical(自动创建 Manager Agent 负责委派和验证)

  4. Tool:Agent 可调用的外部能力(搜索、代码执行、API 等)🔧

  5. Memory:短期记忆(当前会话)、长期记忆(跨会话)、实体记忆(关键信息存储)💾

核心执行流程:

kickoff() → Process 决定顺序 → Agent 接收任务 → LLM 推理 + Tool 执行 → 结果传给下一个 Agent → 所有任务完成,返回最终输出 ✔️

🌊 Flow:生产级工作流

Crew 适合“智能协作”场景,但现实业务往往需要精确的控制流。Flow 的核心原语:

原语

作用

@start()

入口函数 🚪

@listen(step)

监听某步骤完成,串行执行 👂

@router(step)

条件路由,根据返回值分支 🔀

@listen(or_(s1, s2))

任一条件触发 ⚡

@listen(and_(s1, s2))

所有条件满足才触发 🔗

状态管理通过 Pydantic BaseModel 实现,类型安全:

class AnalysisState(BaseModel):
    sentiment: str = "neutral"
    confidence: float = 0.0
    recommendations: list = []

Flow 和 Crew 不是互斥的。典型用法:Flow 控制整体业务流程(“先分析、再判断、再执行”),每个关键步骤内部用 Crew 完成需要智能协作的复杂子任务 🔄。

🎨 设计原则

  1. 语义化角色:用 role/goal/backstory 定义 Agent,而非 prompt 模板。LLM 自己理解“我是谁”,效果优于硬编码 🌟

  2. YAML 配置驱动:Agent 和 Task 用 YAML 管理,与 Python 代码解耦,非技术人员可参与调整 📄

  3. 渐进式复杂度:5 行代码跑一个简单 Crew,10 行加 Flow 做条件路由,不加 Flow 也能直接用于生产 🚀


💎 价值

🧩 解决“单 Agent 天花板”

单个 LLM 的能力边界明确:上下文窗口有限、推理能力有限、无法并行。CrewAI 通过多 Agent 协作突破:

  • 上下文不膨胀:每个 Agent 只看自己的任务和必要上下文

  • 角色专业化:研究员只做研究、写手只写报告、审核员只做审核

  • 并行执行:通过 Flow 的 or_ 触发,多个 Agent 可同时工作 ⚡


    🚀 从原型到生产

    多数 AI 框架原型好用、生产吃力。CrewAI 提供了平滑路径:

    Flow 用于精确控制(确定性业务逻辑),Crew 用于智能协作(需要 AI 判断的创意工作),同一套代码从实验到部署 📈。

    🌍 生态

    • 10万+ 认证开发者,DeepLearning.AI 两门官方课程 🎓

    • 官方 AI Coding Skills(为 Claude Code、Cursor 等提供结构化指令)

    • 商业版 AMP Suite 提供 Tracing、控制平面、企业级安全与合规 🔐


    🚀 快速入门

    uv pip install crewai
    crewai create crew my-first-crew

    生成目录:agents.yaml(Agent 定义)、tasks.yaml(Task 定义)、crew.py(组装)、main.py(入口)📂。

    📄 agents.yaml:

    researcher:
      role: "{topic} Senior Data Researcher"
      goal: "Uncover cutting-edge developments in {topic}"
      backstory: "You're a seasoned researcher..."

    📄 tasks.yaml:

    research_task:
      description: "Conduct thorough research about {topic}"
      expected_output: "A list with 10 bullet points about {topic}"
      agent: researcher

    ▶️ 运行:

    MyFirstCrew().crew().kickoff(inputs={'topic': 'AI Agents'})

    🧪 最小可运行 Demo

    想立刻感受一下 CrewAI 的协作魅力吗?下面这个例子会帮你快速跑通“研究员 + 分析师”的经典组合:一个 Agent 负责搜索最新情报,另一个负责整理成报告,全程自动协作 ✨

    import os
    from crewai import Agent, Task, Crew, Process
    from crewai_tools import SerperDevTool
    
    # 🔍 1. 准备搜索工具(如不需要联网可删除此工具及相关引用)
    search_tool = SerperDevTool()
    
    # 🤖 2. 定义 Agent —— 像组建一支虚拟梦之队
    researcher = Agent(
        role='高级数据研究员',
        goal='发掘 AI Agents 领域的前沿进展',
        backstory='你是一位经验丰富的研究员,擅长从海量信息中提炼出关于 AI Agents 的最新、最相关的洞察。',
        tools=[search_tool],   # 赋予研究员联网搜索能力
        verbose=True           # 打印详细思考过程
    )
    
    analyst = Agent(
        role='报告分析师',
        goal='根据研究员的数据,创建详细、清晰的总结报告',
        backstory='你是一位严谨的分析师,眼光敏锐,能把复杂的数据转化为清晰易懂的 Markdown 报告。',
        verbose=True
    )
    
    # 📋 3. 定义任务 —— 告诉每位 Agent 具体要做什么
    research_task = Task(
        description='对 AI Agents 在 2025 年的最新发展进行深入研究,找出 5 个最关键的技术突破。',
        expected_output='一份包含 5 个关键点的研究清单。',
        agent=researcher            # 研究员执行
    )
    
    report_task = Task(
        description='根据研究清单,将其扩展为一份完整的 Markdown 报告。',
        expected_output='一份格式化的 Markdown 报告,包含标题、各小节和项目符号。',
        agent=analyst,              # 分析师执行
        output_file='report.md'     # 📄 报告自动保存到本地文件
    )
    
    # ⚙️ 4. 组建 Crew 并设定执行流程
    ai_crew = Crew(
        agents=[researcher, analyst],
        tasks=[research_task, report_task],
        process=Process.sequential,  # 🔁 串行执行:先研究,后报告
        verbose=True                 # 打印整个流程的日志
    )
    
    # 🚀 5. 一键启动!
    result = ai_crew.kickoff()
    
    print("######################")
    print("🎉 最终报告生成完毕:")
    print(result)

    💡 运行后你会看到

    • 🧠 终端中会实时打印两个 Agent 的思考、搜索及写作过程

    • 📄 项目目录下会生成 report.md,内容即分析师撰写的完整报告

    • 🎯 控制台最后输出报告全文,方便直接预览

    🎉 总结

    CrewAI 的核心价值:角色化、协作化、工程化

    • 🎭 角色化:不是让 AI 做“万能助手”,而是定义专业角色,各司其职

    • 🤝 协作化:Agent 之间自动传递上下文、委派任务、验证结果

    • ⚙️ 工程化:YAML 配置 → Flow 编排 → 企业级控制平面,覆盖原型到生产全链路

    当 AI Agent 能力越来越强,真正稀缺的不是“能做什么”,而是“如何组织它们高效协作”。

    CrewAI 的答案:像管理一个优秀的团队一样管理你的 AI Agent 👥✨。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值