基于 crewAIInc/crewAI 源码(2025年最新版本),10维度深度剖析
GitHub: https://github.com/crewAIInc/crewAI | Stars: 58,000+ | License: MIT
1. 整体架构概览
CrewAI 是一个角色扮演式多Agent协作框架,核心设计理念是将AI Agent组织成”船员”(Crew)来协作完成复杂任务。架构分为两大范式:
- Crews(自主协作):基于角色的Agent团队,优化自主性和协作智能
- Flows(事件驱动控制):事件驱动的工作流,提供精确的流程控制
源码目录结构(lib/crewai/src/crewai/):
crewai/
├── agent/ # Agent核心实现
├── agents/ # Agent构建器、缓存、执行器
├── crews/ # Crew输出等辅助类
├── flow/ # Flow框架(DSL、运行时、定义)
├── tasks/ # Task子类(条件任务等)
├── tools/ # 工具系统(BaseTool、AgentTools)
├── memory/ # 统一记忆系统
├── knowledge/ # 知识源和知识存储
├── events/ # 事件总线和监听器
├── llms/ # LLM提供者适配层
├── mcp/ # MCP协议集成
├── a2a/ # A2A协议集成
├── security/ # 安全配置和指纹
├── state/ # 检查点和运行时状态
├── crew.py # Crew核心类(2490行)
├── task.py # Task核心类(1566行)
├── process.py # 流程枚举
└── llm.py # LLM封装
2. Agent 设计 — 抽象基类与角色系统
2.1 BaseAgent(抽象基类)
所有Agent的根基类,使用 Pydantic BaseModel + ABC 多重继承: