CrewAI 是什么
CrewAI 是采用 MIT 许可证的独立 Python 框架,拥有自己的智能体、任务、crew、flow 和工具原语。Crew 是由基于角色的智能体组成的团队,围绕一项任务自主协作。Flow 是事件驱动的工作流,可精确控制执行路径、状态和分支。该项目支持执行期间的人工输入,商业版 CrewAI AMP Suite 则增加了用于托管部署、可观测性、治理和支持的控制平面。
自主 crew 与受治理的配置
CrewAI 倾向于智能体自主:你描述角色、目标和任务,crew 自行决定如何协作,需要更严格控制时使用 Flow。EDDI 倾向于控制:确定性的行为规则决定下一步执行哪个动作,LLM 在已声明的任务内被调用,多智能体工作遵循带有明确阶段的命名群组讨论风格。两者都能构建多智能体系统。区别在于,你预先决定多少,与模型在运行时决定多少。
代码中的智能体与配置形式的智能体
| 维度 | CrewAI | EDDI |
|---|---|---|
| 核心抽象 | 由带任务的基于角色智能体组成的 crew,外加事件驱动的 Flow | 智能体配置:管道、行为规则、LLM 任务和工具,均为带版本的 JSON |
| 语言与运行时 | 嵌入你应用的 Python 库 | 基于 JVM(Quarkus)并使用虚拟线程的平台;智能体无需代码 |
| 许可证 | MIT(开源框架);之上有商业版 AMP Suite | Apache 2.0,OSI 认证 |
| 控制流 | 智能体在运行时决定如何协作;Flow 在代码中增加显式分支 | 确定性的行为规则选择下一步动作;群组风格定义各阶段 |
| 代码执行 | 代码解释器工具已从 crewai-tools 中移除,智能体级别的代码执行已被弃用;文档建议使用 E2B 或 Modal 等专用沙箱 | 平台内没有运行时 eval() 或代码执行;逻辑通过声明实现,或放在 MCP 工具或 HTTP 调用之后 |
| 人工介入 | 支持执行期间的人工输入 | 对话轮次、工具调用和群组阶段均有关卡,带超时策略,可在 Manager、REST、MCP 或 Slack 中审批 |
| 多智能体模式 | 代码中的 crew 流程和 Flow | 支持 7 种风格外加自定义的群组讨论,记录决策、计票和异议,转录条目带签名 |
| 管理与治理 | 追踪和治理由商业版 AMP Suite 中的控制平面提供 | Manager 界面、密钥保险库、可选的 Keycloak/OIDC 和审计账本均包含在开源版本中 |
| 审计轨迹 | 通过控制平面或你自己的工具实现追踪和可观测性 | HMAC 签名、仅追加、带序号校验的账本;GET /auditstore/verify/{conversationId} |
| 模型 | 可从 Python 使用多种提供商 | 19 个 LLM 提供商,外加通过 Ollama 或 Jlama 使用的本地模型 |
关于对方工具的信息,已于 2026 年 10 月对照其官方文档和代码仓库核实。这些项目更新很快,决策前请向厂商确认当前行为。
如何在两者之间选择
CrewAI 更合适的场景
- 你的团队以 Python 为主,希望智能体、工具和 crew 逻辑与其他代码放在同一个代码仓库中。
- 你想快速原型验证自主的角色扮演式协作,并通过编辑代码来调优。
- 你需要带有任意逻辑的自定义 Python 工具,这是配置无法表达的。
- 你更倾向于嵌入使用的代码库,而不是需要自行运维的平台。
- 商业版 AMP Suite 控制平面符合你的组织部署和监控 crew 的方式。
EDDI 更合适的场景
- 多智能体行为必须可预测到足以评审:有命名的阶段、记录在案的决策,以及规则,而不是自由发挥的自主性。
- 某些工具调用或群组阶段必须由人工批准,且决策必须记录在带签名的账本中。
- 你希望治理、管理界面和审计包含在开源版本中,而不是放在单独的商业层级里。
- 安全评审会询问推理时运行了什么代码,而你希望平台不运行任何代码。
- 非工程师需要在不提交 pull request 的情况下修改智能体行为。
从 CrewAI 迁移 crew
角色和目标可转换为提示词和群组阶段。变化最大的部分是自主性:crew 过去在运行时决定的事情,会变成你写下来的规则、阶段或审批关卡。
| CrewAI | EDDI |
|---|---|
| 智能体(角色、目标、背景故事) | 在 LLM 任务中带系统消息的 EDDI 智能体 |
| 任务 | 管道任务,或群组讨论中的一个阶段 |
| Crew 流程 | 群组讨论风格,例如专项小组或圆桌会议 |
| 带路由器的 Flow | 使用 inputmatcher 和 actionmatcher 等条件类型的行为规则 |
| 自定义 Python 工具 | MCP 工具、httpCall,或通过 OpenAPI 导入的 API |
| 人工输入 | PAUSE_CONVERSATION 规则、toolApprovals,或阶段上的 requiresApproval |
| 记忆和知识来源 | 对话记忆作用域和 RAG 知识库 |
常见问题
EDDI 是 CrewAI 在多智能体系统方面的替代方案吗?
是的,适用于希望把多智能体协作作为受治理服务的团队。EDDI 的群组讨论按命名风格运行,具有明确的阶段,并记录决策和异议。CrewAI 给予智能体更多自主权,并以 Python 定义,适合希望留在代码中的团队。
EDDI 有像 CrewAI 那样的自主智能体吗?
EDDI 的智能体可以调用工具并在群组讨论中协作,但控制流由你配置的行为规则和阶段决定,而不是交给智能体即兴发挥。这是用自主性换取可预测性的有意取舍。
为什么代码执行在这里很重要?
运行生成代码的智能体需要隔离。CrewAI 已经放弃了内置的代码解释器,转而建议使用专用的沙箱服务。EDDI 在平台内部通过不在运行时求值代码来回避这个问题,因此任何需要真正逻辑的部分,都放在你声明并可以审批的工具之后。
我们可以两者都用吗?
可以。CrewAI 服务可以通过 REST API、MCP 服务器或 OpenAI 兼容 API 调用 EDDI,EDDI 也可以通过 httpCall 调用 CrewAI 端点。用 CrewAI 做代码层面的实验,用 EDDI 运行受治理的生产智能体,是合理的分工。
