AI Intermediate Python

CrewAI 多智能体编排框架

纯 Python 编写的多 AI Agent 编排框架,不依赖 LangChain,支持 Crew 协作和 Flows 事件驱动编排

multi-agentcrewaiautomationpythonai-agentsflows

什么是 CrewAI?

CrewAI 是一个轻量级、纯 Python 编写的多 AI Agent 编排框架,不依赖 LangChain 或其他 Agent 框架。它让开发者既能使用高层简单 API 快速构建,也能进行底层精确控制,非常适合创建面向企业的自动化多智能体系统。CrewAI 提供 Crews(多 Agent 协作)和 Flows(事件驱动编排)两种核心架构。

核心特性

  • 独立框架:完全自研,不依赖 LangChain,代码轻量
  • Crew 系统:多个 Agent 组成 Crew,协作完成复杂任务
  • Flows 编排:事件驱动的生产级工作流,支持单 LLM 调用精确编排
  • AMP Suite:企业级控制平面,支持追踪、可观测性和统一管理
  • 100+ 课程学习者:社区教育活跃,learn.crewai.com 提供认证课程
  • 灵活模型:支持 OpenAI、Anthropic、本地模型等多种 LLM

安装

pip install crewai

快速开始

创建第一个 Crew

from crewai import Agent, Task, Crew, Process

# 定义 Agent
researcher = Agent(
    role="研究员",
    goal="找出最新 AI 技术趋势",
    backstory="你是一个经验丰富的科技研究员"
)

writer = Agent(
    role="作家",
    goal="撰写简洁的技术摘要",
    backstory="你是一个科技作家,擅长简化复杂概念"
)

# 定义任务
task1 = Task(
    description="研究 2026 年 AI Agent 最新进展",
    agent=researcher
)

task2 = Task(
    description="基于研究结果写一篇摘要",
    agent=writer
)

# 组建 Crew 并执行
crew = Crew(
    agents=[researcher, writer],
    tasks=[task1, task2],
    process=Process.sequential
)

result = crew.kickoff()
print(result)

常见用法

多 Agent 协作

# 定义多个专业 Agent
researcher = Agent(role="研究员", ...)
analyst = Agent(role="分析师", ...)
writer = Agent(role="作家", ...)

# 组成 Crew 并行或顺序执行
crew = Crew(
    agents=[researcher, analyst, writer],
    tasks=[...],
    process=Process.hierarchical  # 支持层级协作
)

Flows 事件驱动编排

from crewai import Flow
from crewai.flow import listen, step

class MyFlow(Flow):
    @listen(start)
    def step_one(self):
        return "Processing..."

    @listen(step_one)
    def step_two(self, state):
        return {"result": state + " complete"}

进阶主题

连接自有模型

from crewai import Agent

agent = Agent(
    role="自定义角色",
    llm="openai/gpt-4"  # 或 "anthropic/claude-3"
)

使用 Flows 编排复杂流程

class ReportFlow(Flow):
    @listen(schedule_trigger)
    def research(self):
        return {"topics": ["AI", "tech"]}

    @listen(research)
    def write(self, state):
        # 调用 Agent 写报告
        return {"report": ...}

    @listen(write)
    def publish(self, state):
        # 发布报告
        return {"status": "published"}

常见问题

Q:CrewAI vs LangChain/LangGraph?

A:CrewAI 更轻量,API 简洁;LangChain 功能全但复杂度高。企业项目可选 CrewAI,生产验证更成熟。

Q:支持中文吗?

A:框架支持中文输入输出,文档以英文为主,社区有中文贡献者。

参考链接