进阶
使用 CrewAI 构建多智能体系统
深入探讨如何编排角色扮演的自主智能体,以解决复杂的多步骤业务任务。
15 分钟阅读
CrewAIClaude 3
使用 CrewAI 构建多智能体系统#
CrewAI 使你能够创建协同工作的 AI 智能体团队。每个智能体都有特定的角色、目标和背景故事,这些因素共同指导其行为。
什么是 CrewAI?#
CrewAI 是一个用于编排角色扮演自主智能体的框架。它允许你:
- 定义具有特定角色和专业知识的智能体
- 创建具有明确目标的任务
- 编排智能体之间的协作
- 根据智能体能力自动委派工作
安装#
pip install crewai crewai-tools核心组件#
智能体#
智能体是你的团队(Crew)的构建模块:
from crewai import Agent
researcher = Agent(
role="高级研究分析师",
goal="发掘人工智能领域的前沿发展",
backstory="""你在一家领先的科技智库工作。
你的专长在于识别新兴趋势。""",
tools=[search_tool, scrape_tool],
llm=claude_3,
verbose=True
)
writer = Agent(
role="科技内容策略师",
goal="撰写关于 AI 发现的引人入胜的内容",
backstory="""你是一位著名的内容策略师,
以将复杂主题变得通俗易懂而闻名。""",
llm=claude_3,
verbose=True
)任务#
任务定义了智能体需要完成的工作:
from crewai import Task
research_task = Task(
description="""对 2024 年发布的最新
AI 智能体框架进行全面研究。""",
expected_output="一份包含关键发现的详细报告",
agent=researcher
)
writing_task = Task(
description="""利用研究发现,撰写一篇
关于顶级 AI 智能体框架的博客文章。""",
expected_output="一篇可供发布的精修博客文章",
agent=writer,
context=[research_task] # 此任务依赖于研究任务
)组装团队#
from crewai import Crew, Process
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process=Process.sequential, # 或 Process.hierarchical
verbose=True
)
result = crew.kickoff()高级模式#
分层流程#
对于复杂的工作流,可以使用管理者智能体:
from crewai import Crew, Process
crew = Crew(
agents=[researcher, writer, editor],
tasks=[research_task, writing_task, editing_task],
process=Process.hierarchical,
manager_llm=gpt4, # 管理者智能体使用 GPT-4
)自定义工具#
为你的智能体创建专用工具:
from crewai_tools import BaseTool
class DataAnalysisTool(BaseTool):
name: str = "数据分析器"
description: str = "分析数据集并返回洞察"
def _run(self, dataset_path: str) -> str:
# 实现代码
return analysis_results最佳实践#
- 明确的角色定义:为智能体分配清晰、不重叠的角色
- 具体的目标:使智能体目标可衡量且可实现
- 丰富的背景故事:详细的背景故事能提升智能体的推理能力
- 任务依赖关系:使用上下文来链接任务输出
- 内存管理:为长时间运行的团队启用记忆功能
实际应用场景#
- 内容创作流水线:研究写作 → 编辑 → SEO
- 客户支持:问题分类解决 → 跟进
- 数据分析:收集处理 → 可视化 → 报告