SuperAPI AI 工具集

crewai-multi-agent

智能体与模型

查看项目

更新于 10-15 08:33

技能介绍

CrewAI 是一个多智能体编排框架,用于构建由多个自主 AI 智能体组成的团队,让它们协作解决复杂任务。

【用途】 当需要构建带专业化角色的多智能体系统、需要智能体之间自主协作、希望按角色进行任务委派(如研究员、写作者、分析师),或需要顺序/层级流程执行、带记忆与可观测性的生产工作流时,可使用 CrewAI。其定位是比 LangChain/LangGraph 更简单的搭建方式。官方也给出了替代方案参考:LangChain 适合通用 LLM 应用与 RAG 管道,LangGraph 适合带环的复杂有状态工作流,AutoGen 适合微软生态的多智能体对话,LlamaIndex 适合文档问答与知识检索。

【主要能力】

  1. 独立轻量:不依赖 LangChain,占用小。
  2. 基于角色:智能体具有角色、目标和背景故事。
  3. 双范式:Crews(自主协作)与 Flows(事件驱动)。
  4. 50+ 内置工具:网页抓取、搜索、数据库、AI 服务等。
  5. 记忆:短期、长期和实体记忆。
  6. 生产就绪:追踪、企业级特性。

【使用方式】 安装命令: pip install crewai pip install 'crewai[tools]'

通过 CLI 创建项目: crewai create crew my_project cd my_project crewai install crewai run

纯代码方式的核心概念包括 Agent(自主工作者,可配置 role、goal、backstory、llm、tools、memory、verbose、allow_delegation、max_iter、max_rpm)、Task(工作单元,可配置 description、expected_output、agent、context、output_file、async_execution、human_input)以及 Crew(智能体团队,可配置 agents、tasks、process、verbose、memory、cache、max_rpm、share_crew)。通过 crew.kickoff(inputs={...}) 执行,可读取 result.raw、result.tasks_output、result.token_usage。

流程类型:

  • Sequential(默认):任务按顺序执行。
  • Hierarchical:自动创建 manager 智能体进行委派与协调,可设置 manager_llm。

工具使用:可引入内置工具(如 SerperDevTool、ScrapeWebsiteTool、FileReadTool、PDFSearchTool、WebsiteSearchTool、CodeDocsSearchTool、YoutubeVideoSearchTool 等),也可通过继承 crewai.tools.BaseTool 并使用 pydantic Field 定义自定义工具。

YAML 配置(推荐):项目结构包含 src/my_project/config/agents.yaml、tasks.yaml、crew.py、main.py 和 pyproject.toml。crew.py 中可使用 @CrewBase 装饰器及 @agent、@task、@crew 方法,引用 agents_config 与 tasks_config。

Flows 事件驱动编排:可从 crewai.flow.flow 导入 Flow、listen、start、router,结合 pydantic BaseModel 定义状态,用于带条件逻辑的复杂工作流。

LLM 提供方:通过 crewai 的 LLM 类可配置 OpenAI(默认,如 gpt-4o)、Anthropic(如 claude-sonnet-4-5-20250929)、本地 Ollama(如 ollama/llama3.1,base_url http://localhost:11434)、Azure(如 azure/gpt-4o)等。

记忆系统:在 Crew 中设置 memory=True 可启用,embedder 可自定义嵌入提供商与模型;记忆类型包括短期(ChromaDB)、长期(SQLite)、实体(ChromaDB)。可通过环境变量 CREWAI_STORAGE_DIR 指定存储目录。

【适用场景】 适合需要多角色协作、自主委派与多步推理的自动化工作流,例如研究加写作的内容生产、数据分析与报告生成等。

【最佳实践与限制】 建议每个智能体有明确专长;较大项目使用 YAML 配置;启用记忆以改善跨任务上下文;设置 max_iter 防止无限循环(默认 15);每个智能体工具限制在 3-5 个;通过 max_rpm 做速率限制。常见问题包括智能体陷入循环(可设 max_iter、max_rpm)、任务未使用上下文(需在 Task 中显式传入 context)、记忆错误(可设 CREWAI_STORAGE_DIR)。

【资源】 GitHub:https://github.com/crewAIInc/crewAI(25k+ stars) 文档:https://docs.crewai.com 工具:https://github.com/crewAIInc/crewAI-tools 示例:https://github.com/crewAIInc/crewAI-examples 版本:1.2.0+ 许可证:MIT