主要内容
CrewAI 押注一个观念:企业里的工作本来就是团队协作,那 AI 也应该按团队的方式组织。每个 agent 有 role / goal / backstory,就像员工的岗位、目标、简历。Crew 是自治层,你给任务,agent 自己委派。Flow 是确定性层,事件驱动、条件分支、Pydantic 共享状态,用来搭骨架。两层混用才是精髓:骨架用 Flow 确保流程不乱,创造性环节让 Crew 自由发挥。文档极多、社区教程活跃,是非技术背景的 PM 和 analyst 的首选。
核心关注点
关心"团队协作的比喻"而不是技术抽象。让非技术背景的同事也能读懂 agent 代码。
安装与 hello world
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
researcher = Agent(
role="Senior Research Analyst",
goal="挖掘 AI agent 领域最新趋势",
backstory="你有 10 年行业分析经验,以识别早期信号见长。",
tools=[SerperDevTool()],
verbose=True,
)
writer = Agent(
role="Tech Writer",
goal="写清晰、不废话的技术分析",
backstory="你在 Stratechery 风格的分析媒体工作多年。",
)
research = Task(
description="调研 {topic} 方向过去 30 天的新进展",
agent=researcher,
expected_output="5 个关键发现,每个附带来源",
)
write = Task(
description="基于调研写一篇 800 字分析",
agent=writer,
context=[research],
expected_output="一篇结构化的分析文章",
)
crew = Crew(
agents=[researcher, writer],
tasks=[research, write],
process=Process.sequential,
)
result = crew.kickoff(inputs={"topic": "harness engineering"})关键 API / 概念
Agent(role, goal, backstory)角色三要素。backstory 质量直接影响 agent 行为,不要空。
Task(description, expected_output, context)任务描述 + 期望输出 + 上游依赖(context 数组)。
Crew(process=sequential|hierarchical)顺序执行 vs 有 manager agent 动态委派。
Flow@start、@listen 装饰器搭事件驱动图,适合确定性部分。
适用场景
内容生产流水线
researcher → writer → editor → SEO specialist,每个 agent 一个角色,产出博客 / 报告 / 营销文案。
市场与竞品分析
数据爬取 agent + 趋势分析 agent + 洞察撰写 agent,一键产出季度分析报告。
业务流程自动化
合同审查、报销审核、面试初筛,能映射成"一支团队"的业务流程都合适。
什么时候别用
- 需要精细分支 / 长时 checkpoint 恢复:LangGraph 更硬
- 只是单 agent:角色抽象反而累赘
vs 相邻选项
vs AutoGen
都用团队比喻,但 CrewAI 更产品化,AutoGen 更研究化。
vs LangGraph
LangGraph 暴露图结构给开发者,CrewAI 把图藏起来只给你"团队"这个概念。