CrewAI 用于编排多角色自主 AI 代理(Crews)和事件驱动工作流(Flows)的 Python 框架
根据 CrewAI 的官方仓库,这是一个用于编排**多角色自主 AI 代理(Crews)和事件驱动工作流(Flows)**的 Python 框架。以下是根据其文档整理的完整部署与使用教程。
🧭 核心概念与选择
CrewAI 提供了两种互补的抽象,你可以根据任务复杂度选择或组合使用:
| 概念 | 核心思想 | 适用场景 |
|---|---|---|
| Crews(代理团队) | 模拟团队协作,由多个拥有特定角色(Role)、**目标(Goal)和工具(Tools)的自主 AI 代理组成,通过任务(Task)**驱动,自主决策和协作。 | 需要创造性、灵活性和多角度分析的复杂任务,如撰写研究报告、制定营销策略、头脑风暴。 |
| Flows(工作流) | 提供精确、事件驱动的控制流,通过 @start、@listen、@router 等装饰器定义步骤、状态管理和条件分支。 |
需要严格顺序、确定性逻辑和状态管理的生产级流程,如数据处理管道、自动化报告生成、与现有系统集成。 |
官方建议:将 Crews 和 Flows 结合使用,用 Flow 搭建工作流的骨架,在需要自主决策的节点调用 Crew,实现“可控的自主性”。
📦 安装与环境准备
1. 前提要求
- Python 版本:需要 Python >= 3.10 且 < 3.14。
- 包管理器:项目强烈推荐使用 UV(一个快速的 Python 包管理器)。你也可以使用
pip。
2. 安装 CrewAI
1 | # 使用 UV(推荐) |
3. (可选)安装 CrewAI CLI 工具
CLI 工具可以快速创建项目脚手架。
1 | crewai install # 安装 CLI(如果尚未安装) |
🚀 快速上手:创建并运行你的第一个 Crew
官方推荐通过 CLI 创建标准项目结构,然后进行配置。
第1步:创建新项目
1 | crewai create crew my_ai_team |
这将生成以下标准结构:
1 | my_ai_team/ |
第2步:配置代理 (config/agents.yaml)
用 YAML 定义你的代理团队。
1 | researcher: |
第3步:定义任务 (config/tasks.yaml)
为代理分配具体任务。
1 | research_task: |
第4步:组装 Crew (src/my_ai_team/crew.py)
在 Python 代码中组装代理和任务。
1 | from crewai import Agent, Crew, Process, Task |
第5步:设置 API 密钥并运行
在项目根目录的 .env 文件中添加你的 LLM API 密钥(如 OpenAI)及任何工具所需的 API 密钥(如 Serper.dev)。
1 | OPENAI_API_KEY=sk-... |
最后,运行你的 Crew:
1 | crewai run |
你将在控制台看到代理的思考过程,并在项目根目录得到生成的 report.md 文件。
🔧 进阶用法:使用 Flows 实现精确控制
当需要更复杂的工作流(如条件分支、状态管理)时,使用 Flows。
1 | from crewai.flow.flow import Flow, listen, start, router, or_ |
📋 常用 CLI 命令
| 命令 | 说明 |
|---|---|
crewai create crew <项目名> |
创建新的 Crew 项目脚手架 |
crewai run |
在项目目录下运行 Crew |
crewai install |
安装项目依赖(使用 UV) |
crewai update |
更新 CrewAI 包 |
💡 最佳实践与故障排查
- 依赖问题:如遇到
tiktoken安装失败,可尝试uv pip install 'crewai[embeddings]'或手动安装uv pip install tiktoken --prefer-binary。 - 模型配置:默认使用 OpenAI。可通过在
Agent或Crew中设置llm参数连接到其他模型(如本地 Ollama、Anthropic Claude 等)。参考官方 LLM Connections 文档。 - 生产部署:对于企业级需求,官方提供 CrewAI AMP Suite,增加了管理、可观测性、安全性和支持服务,支持云和本地部署。
- 遥测:CrewAI 会收集匿名使用数据以改进项目。不会收集提示词、任务描述等敏感内容。你可以在环境变量中设置
OTEL_SDK_DISABLED=true来关闭遥测。
总结
CrewAI 的核心价值在于将复杂的 AI 任务拆解为由多个专家代理协作完成的流程。对于初学者,推荐从 CLI 创建项目 -> 编辑 YAML 配置代理和任务 -> 运行 Crew 这个标准路径开始,快速体验多代理协作。当你的流程需要更严谨的控制时,再引入 Flows 来编排这些 Crew,构建从实验到生产的完整自动化管道。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论


