SuperAPI AI 工具集

crewai-multi-agent

智能体与模型

查看项目

更新于 10-14 14:46

技能介绍

用途

CrewAI 用于构建由多个自主 AI 智能体组成的团队,让它们通过协作解决复杂任务。文档指出,适用于以下情况:构建具有专业化角色的多智能体系统;需要智能体之间自主协作;希望按角色进行任务委派(如研究员、写作者、分析师);需要顺序或层级式流程执行;构建带有记忆与可观测性的生产工作流;以及希望比 LangChain/LangGraph 更简单的配置方式。

主要能力

  • 独立运行:无 LangChain 依赖,体量精简。
  • 基于角色:每个智能体拥有角色、目标和背景故事。
  • 双范式:Crews(自主协作)与 Flows(事件驱动)。
  • 50+ 工具:网页抓取、搜索、数据库、AI 服务等。
  • 记忆:短期、长期和实体记忆。
  • 生产就绪:追踪、企业级特性。

核心概念包括三类:

  1. Agent(智能体)——自主工作者。可设置 role(角色)、goal(目标)、backstory(背景)、llm(使用的模型)、tools(工具)、memory(是否启用记忆)、verbose(是否显示推理过程)、allow_delegation(是否可委派给其他智能体)、max_iter(最大推理迭代数)、max_rpm(速率限制)等参数。
  2. Task(任务)——工作单元。可设置 description(描述)、expected_output(期望输出)、agent(分配的智能体)、context(来自其他任务的输入)、output_file(保存到文件)、async_execution(是否异步执行)、human_input(是否需要人工审批)等。
  3. Crew(团队)——智能体团队。组合 agents、tasks,并设置 process(流程类型)、verbose、memory、cache、max_rpm、share_crew 等。执行后可访问 result.raw(最终输出)、result.tasks_output(全部任务输出)、result.token_usage(token 消耗)。

流程类型有两种:

  • Sequential(顺序,默认):任务按顺序执行,每个智能体完成自己的任务后再进行下一个。
  • Hierarchical(层级):自动创建一个管理者智能体来委派与协调,可指定 manager_llm。

工具支持:安装 pip install 'crewai[tools]' 后可获得 50+ 内置工具,例如 SerperDevTool(网页搜索)、ScrapeWebsiteTool(网页抓取)、FileReadTool(读取文件)、PDFSearchTool(搜索 PDF)、WebsiteSearchTool(搜索网站)、CodeDocsSearchTool(搜索代码文档)、YoutubeVideoSearchTool(搜索 YouTube)。也支持通过继承 BaseTool 编写自定义工具。

记忆系统:在 Crew 中设置 memory=True 启用记忆,并可自定义 embedder(嵌入提供方与模型)。记忆类型包括短期(ChromaDB)、长期(SQLite)、实体(ChromaDB)。

LLM 提供方:支持通过 LLM 类配置多种模型,如 OpenAI(默认,如 gpt-4o)、Anthropic、本地 Ollama、Azure 等。

Flows:针对带条件逻辑的复杂工作流,可使用事件驱动的 Flow,配合 start、listen、router 等装饰器与 pydantic 状态模型实现步骤编排与分支路由。

使用方式

安装:

# Core framework
pip install crewai

# With 50+ built-in tools
pip install 'crewai[tools]'

用 CLI 创建项目:

# Create new crew project
crewai create crew my_project
cd my_project

# Install dependencies
crewai install

# Run the crew
crewai run

也可纯代码定义。官方示例:先定义 agent 与 task,再组装 Crew 并执行:

from crewai import Agent, Task, Crew, Process

researcher = Agent(
    role="Senior Research Analyst",
    goal="Discover cutting-edge developments in AI",
    backstory="You are an expert analyst with a keen eye for emerging trends.",
    verbose=True
)

writer = Agent(
    role="Technical Writer",
    goal="Create clear, engaging content about technical topics",
    backstory="You excel at explaining complex concepts to general audiences.",
    verbose=True
)

research_task = Task(
    description="Research the latest developments in {topic}. Find 5 key trends.",
    expected_output="A detailed report with 5 bullet points on key trends.",
    agent=researcher
)

write_task = Task(
    description="Write a blog post based on the research findings.",
    expected_output="A 500-word blog post in markdown format.",
    agent=writer,
    context=[research_task]
)

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential,
    verbose=True
)

result = crew.kickoff(inputs={"topic": "AI Agents"})
print(result.raw)

推荐使用 YAML 配置方式。项目结构如下:

my_project/
├── src/my_project/
│   ├── config/
│   │   ├── agents.yaml    # Agent definitions
│   │   └── tasks.yaml     # Task definitions
│   ├── crew.py            # Crew assembly
│   └── main.py            # Entry point
└── pyproject.toml

agents.yaml、tasks.yaml 分别定义智能体与任务,crew.py 使用 @CrewBase 装饰器与 @agent、@task、@crew 方法组装,main.py 作为入口调用 kickoff 并传入 inputs。

适用场景

文档给出的典型场景包括:需要专业化角色的多智能体系统、智能体间自主协作、按角色委派任务(研究员、写作者、分析师)、顺序或层级流程执行、带记忆与可观测性的生产工作流,以及希望比 LangChain/LangGraph 更易配置的项目。文档同时建议以下情况选用替代方案:LangChain 适合通用 LLM 应用与 RAG 流水线;LangGraph 适合带环路的复杂有状态工作流;AutoGen 适合微软生态与多智能体对话;LlamaIndex 适合文档问答与知识检索。

限制与注意事项

文档列出了常见问题与最佳实践:

  • 智能体陷入循环:可设置 max_iter(默认 15)与 max_rpm 限制。
  • 任务未使用上下文:需通过 context=[task1] 显式传递。
  • 记忆错误:可通过环境变量 CREWAI_STORAGE_DIR 指定存储目录。
  • 最佳实践:为每个智能体设定清晰且互不重复的角色;较大项目使用 YAML 配置;启用记忆以改善跨任务上下文;设置 max_iter 防止无限循环;每个智能体工具数限制在 3-5 个;设置 max_rpm 避免 API 限流。

版本与许可:文档标注版本为 1.2.0+,许可证为 MIT。资源:GitHub https://github.com/crewAIInc/crewAI (25k+ stars)、文档 https://docs.crewai.com 、工具 https://github.com/crewAIInc/crewAI-tools 、示例 https://github.com/crewAIInc/crewAI-examples 。

关于具体收费、价格、平台支持范围或实际效果,资料未提供,暂未提供。