进阶

使用 CrewAI 构建多智能体系统

深入探讨如何编排角色扮演的自主智能体,以解决复杂的多步骤业务任务。

15 分钟阅读
CrewAIClaude 3

使用 CrewAI 构建多智能体系统#

CrewAI 使你能够创建协同工作的 AI 智能体团队。每个智能体都有特定的角色、目标和背景故事,这些因素共同指导其行为。

什么是 CrewAI?#

CrewAI 是一个用于编排角色扮演自主智能体的框架。它允许你:
  • 定义具有特定角色和专业知识的智能体
  • 创建具有明确目标的任务
  • 编排智能体之间的协作
  • 根据智能体能力自动委派工作

安装#

bash
pip install crewai crewai-tools

核心组件#

智能体#

智能体是你的团队(Crew)的构建模块:
python
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
)

任务#

任务定义了智能体需要完成的工作:
python
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]  # 此任务依赖于研究任务
)

组装团队#

python
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()

高级模式#

分层流程#

对于复杂的工作流,可以使用管理者智能体:
python
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
)

自定义工具#

为你的智能体创建专用工具:
python
from crewai_tools import BaseTool

class DataAnalysisTool(BaseTool):
    name: str = "数据分析器"
    description: str = "分析数据集并返回洞察"

    def _run(self, dataset_path: str) -> str:
        # 实现代码
        return analysis_results

最佳实践#

  1. 明确的角色定义:为智能体分配清晰、不重叠的角色
  2. 具体的目标:使智能体目标可衡量且可实现
  3. 丰富的背景故事:详细的背景故事能提升智能体的推理能力
  4. 任务依赖关系:使用上下文来链接任务输出
  5. 内存管理:为长时间运行的团队启用记忆功能

实际应用场景#

  • 内容创作流水线:研究写作 → 编辑 → SEO
  • 客户支持:问题分类解决 → 跟进
  • 数据分析:收集处理 → 可视化 → 报告