CrewAI 使用指导文档
CrewAI 是一个轻量、高性能的框架,专注于多 AI 代理协作,能够通过角色扮演和任务分配实现复杂任务的自动化。它支持灵活的定制、外部工具集成以及多种大型语言模型(LLM)的使用,适用于从简单任务到企业级复杂场景的自动化需求。编辑文件,定义两个代理:研究员和报告撰写者。writer:编辑文件,定义两个任务:研究和报告撰写。CrewAI 提供了一个强大而灵活的框架,用于构建协作 AI 代理团队。通
CrewAI 是一个开源的 Python 框架,用于编排协作的自主 AI 代理,通过角色分配和任务管理实现复杂任务的自动化。本文档基于 CrewAI GitHub 仓库 的信息,旨在帮助用户快速上手 CrewAI,构建并运行 AI 代理团队。
1. 简介
CrewAI 是一个轻量、高性能的框架,专注于多 AI 代理协作,能够通过角色扮演和任务分配实现复杂任务的自动化。它支持灵活的定制、外部工具集成以及多种大型语言模型(LLM)的使用,适用于从简单任务到企业级复杂场景的自动化需求。
主要特性
- 角色驱动的代理设计:为每个代理定义特定的角色、目标和背景故事。
- 自主代理间协作:代理可以自主委托任务并相互交流,提升问题解决效率。
- 灵活的任务管理:动态分配任务并支持自定义工具。
- 高性能与轻量:优化执行速度和资源使用,独立于其他框架如 LangChain。
- 支持多种 LLM:兼容开源和专有模型,支持本地模型(如通过 Ollama 或 LM Studio)。
2. 安装与环境配置
2.1 安装 CrewAI
确保你的系统已安装 Python 3.8 或更高版本。建议使用虚拟环境以避免依赖冲突。
运行以下命令安装 CrewAI:
pip install crewai
如果使用 Poetry 管理依赖,运行:
poetry add crewai
若遇到 Poetry 相关错误,可更新 CrewAI 包:
poetry update crewai
2.2 配置环境变量
CrewAI 需要配置 API 密钥以使用 LLM(如 OpenAI、Anthropic 或本地模型)。创建一个 .env
文件存储密钥,格式如下:
OPENAI_API_KEY=your_openai_api_key
SERPER_API_KEY=your_serper_api_key
确保将 .env
添加到 .gitignore
中以防止泄露密钥。
2.3 项目结构
推荐使用 CrewAI 的 YAML 模板结构来组织项目。运行以下命令创建一个新项目:
crewai create latest-ai-development
这将生成以下目录结构:
latest-ai-development/
├── .gitignore
├── pyproject.toml
├── README.md
├── .env
└── src/
└── latest_ai_development/
├── __init__.py
├── main.py
├── crew.py
├── tools/
│ ├── custom_tool.py
│ └── __init__.py
└── config/
├── agents.yaml
├── tasks.yaml
agents.yaml
:定义代理的角色、目标和背景。tasks.yaml
:定义任务的描述和预期输出。main.py
:主程序入口,加载配置并运行代理团队。
3. 创建你的第一个 AI 代理团队
以下是一个简单的例子,展示如何使用 CrewAI 创建一个研究和报告生成团队。
3.1 定义代理
编辑 src/latest_ai_development/config/agents.yaml
文件,定义两个代理:研究员和报告撰写者。
researcher:
role: Senior Data Researcher
goal: Uncover cutting-edge developments in AI
backstory: You're a seasoned researcher with a knack for uncovering the latest developments in AI. Known for your ability to find relevant information and present it clearly.
writer:
role: Report Writer
goal: Create a comprehensive report based on research findings
backstory: You're an expert writer skilled in transforming complex data into clear, engaging reports.
3.2 定义任务
编辑 src/latest_ai_development/config/tasks.yaml
文件,定义两个任务:研究和报告撰写。
research_task:
description: Research the latest advancements in AI for 2025
expected_output: A detailed summary of recent AI developments
agent: researcher
writing_task:
description: Write a comprehensive report based on the research findings
expected_output: A markdown-formatted report
agent: writer
3.3 配置主程序
编辑 src/latest_ai_development/main.py
,加载代理和任务,并运行 CrewAI:
from crewai import Crew, Agent, Task
import os
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 配置代理
researcher = Agent(
role="Senior Data Researcher",
goal="Uncover cutting-edge developments in AI",
backstory="You're a seasoned researcher with a knack for uncovering the latest developments in AI.",
verbose=True,
allow_delegation=False
)
writer = Agent(
role="Report Writer",
goal="Create a comprehensive report based on research findings",
backstory="You're an expert writer skilled in transforming complex data into clear, engaging reports.",
verbose=True,
allow_delegation=False
)
# 配置任务
research_task = Task(
description="Research the latest advancements in AI for 2025",
expected_output="A detailed summary of recent AI developments",
agent=researcher
)
writing_task = Task(
description="Write a comprehensive report based on the research findings",
expected_output="A markdown-formatted report",
agent=writer
)
# 创建 Crew
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=2
)
# 运行 Crew
result = crew.kickoff()
# 输出结果
print(result)
3.4 运行项目
在终端中运行以下命令:
python src/latest_ai_development/main.py
运行后,CrewAI 将按顺序执行任务,生成一个 report.md
文件,包含研究结果和最终报告。
4. 高级功能
4.1 集成外部工具
CrewAI 支持与外部工具、API 和数据库集成。例如,使用 crewAI-tools
包添加搜索功能:
pip install crewai-tools
示例:添加互联网搜索工具。
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
researcher = Agent(
role="Senior Data Researcher",
goal="Uncover cutting-edge developments in AI",
tools=[search_tool],
verbose=True
)
需要提供 SERPER_API_KEY
,可从 Serper 获取。
4.2 使用本地 LLM
CrewAI 支持本地模型(如 Llama 3.1)。以下是配置 NVIDIA NIM 模型的示例:
from crewai import LLM
local_nvidia_nim_llm = LLM(
model="openai/meta/llama-3.1-8b-instruct",
base_url="http://localhost:8000/v1",
api_key="your_api_key"
)
researcher = Agent(
role="Senior Data Researcher",
goal="Uncover cutting-edge developments in AI",
llm=local_nvidia_nim_llm,
verbose=True
)
参考 LLM 配置文档 获取更多细节。
4.3 流程管理
CrewAI 支持两种主要流程:
- 顺序流程:任务按顺序执行(默认)。
- 层级流程:自动分配一个管理者代理协调任务。
启用层级流程:
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process="hierarchical",
verbose=2
)
更多流程(如共识流程)正在开发中。
5. 最佳实践
- 优化 token 使用:监控 LLM 的 token 使用,调整上下文窗口和温度参数以平衡性能和成本。
- 使用 YAML 模板:通过
agents.yaml
和tasks.yaml
保持项目结构清晰。 - 启用详细日志:设置
verbose=True
以调试代理行为。 - 社区资源:参考 CrewAI-examples 仓库 获取实际案例,如旅行规划或股票分析。
6. 贡献与支持
CrewAI 是一个开源项目,欢迎社区贡献。你可以:
- 访问 CrewAI GitHub 提交 Pull Request。
- 加入 CrewAI 社区论坛 与其他开发者交流。
- 查看 官方文档 获取详细教程。
若需企业级功能(如实时监控、安全集成),可探索 CrewAI Enterprise。
7. 注意事项
- 遥测数据:CrewAI 默认启用匿名遥测以改进功能,不收集敏感数据(如提示或 API 密钥)。可通过设置环境变量
OTEL_SDK_DISABLED=true
禁用。 - 依赖管理:定期更新 CrewAI 和相关包以避免兼容性问题。
- Windows 用户:若遇到
chroma-hnswlib
构建错误,安装 Visual Studio Build Tools 并启用 C++ 桌面开发。
8. 总结
CrewAI 提供了一个强大而灵活的框架,用于构建协作 AI 代理团队。通过角色驱动的设计、任务管理和外部工具集成,用户可以轻松实现复杂任务的自动化。遵循本指南,你可以快速创建并运行你的第一个 CrewAI 项目,并根据需求扩展功能。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)