CrewAI 角色化 Agent 实战:从 5 行 prompt 到部署一个研究 Crew

CrewAI 把「多 Agent 协作」抽象成了产品经理都能读懂的剧本结构:每个 Agent 是带 role / goal / backstory 三件套的角色,Crew 是把这些角色按顺序拉到一起的剧组,Task 是场记板上的具体镜头。实测 crewAIInc/crewAI 仓库在本 session 拿到 55,618 颗星、推进日期 2026-07-15(MIT 许可)—— 在 2026-07-08 发布 1.15.2 后,CrewAI 已稳定进入「Crew + Flow 双轨」的成熟期,本教程用两条路径各跑一遍,带你从 5 行 prompt 走到一个可部署的研究 Crew。

一、CrewAI 当前定位:上手最快 ≠ 工业最稳

CrewAI 与 AutoGen / LangGraph 的本质差异在于「抽象层级」:AutoGen 给的是裸 AssistantAgent + 消息回调,LangGraph 给的是图状态机;CrewAI 给的是「一个研究团队」—— Researcher 负责查资料、Writer 负责撰稿、Editor 负责润色,LLM 在 Crew 内部按 Process.sequentialProcess.hierarchical 流转。这种产品化抽象让非工程师能在 30 分钟内跑出一个像样的工作流,但代价是细粒度状态控制比 LangGraph 弱,异常分支比 AutoGen 少。

要在 2026 年 7 月正确选 CrewAI,先认两个里程碑:

  • 1.15.x 系列(2026-06 起)引入 Flow(基于事件的状态机),把「简单 Crew 串行任务」扩展到「带条件分支的 Crew 工作流」——这是从 demo 到生产的拐点
  • 1.15.2(2026-07-08)[200]是当前最新稳定版,本文示例代码全部基于它

二、30 分钟最小闭环:5 行 prompt 跑通一个研究 Crew

mermaid diagram

步骤 1:环境与安装(约 5 分钟)


python3 -m venv .venv && source .venv/bin/activate
pip install -U "crewai[tools]" crewai

步骤 2:导出 API Key(以 OpenAI 为例,Anthropic 走 langchain-anthropic 子包)


export OPENAI_API_KEY="***"

步骤 3:写一个三 Agent 协作的研究脚本(约 15 分钟)


from crewai import Agent, Crew, Process, Task
from crewai_tools import SerperDevTool, ScrapeWebsiteTool

search_tool = SerperDevTool()
scrape_tool = ScrapeWebsiteTool()

researcher = Agent(
    role="Senior Research Analyst",
    goal="Find the most relevant data points on {topic}",
    backstory="You are a meticulous analyst who cross-checks sources.",
    tools=[search_tool, scrape_tool],
    verbose=True,
)

writer = Agent(
    role="Technical Writer",
    goal="Compose a clear 500-word brief on {topic}",
    backstory="You write for engineers. No marketing fluff.",
    verbose=True,
)

editor = Agent(
    role="Senior Editor",
    goal="Polish the draft for clarity and correctness",
    backstory="You catch factual errors and tighten prose.",
    verbose=True,
)

t1 = Task(description="Research {topic}", expected_output="Bullet list of 8-12 facts with sources", agent=researcher)
t2 = Task(description="Write a 500-word brief", expected_output="Markdown brief", agent=writer)
t3 = Task(description="Edit the brief", expected_output="Final markdown", agent=editor)

crew = Crew(agents=[researcher, writer, editor], tasks=[t1, t2, t3], process=Process.sequential)
result = crew.kickoff(inputs={"topic": "CrewAI vs AutoGen vs LangGraph in 2026"})
print(result.raw)

步骤 4:替换为 Flow 形态(约 10 分钟)

Crew.kickoff() 包进 Flow 的状态机,用 @start() / @listen() / @router() 装饰器定义分支,这是把 Crew 从「一次跑完」扩展到「长流程 + 重试 + 人机协同」的关键拐点。


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

class ResearchFlow(Flow):
    @start()
    def fetch_topic(self):
        return "MCP protocol adoption in 2026"

    @listen(fetch_topic)
    def run_research(self, topic):
        return crew.kickoff(inputs={"topic": topic})

    @listen(run_research)
    def publish(self, brief):
        Path(f"reports/{self.state.id}.md").write_text(brief.raw)
        return brief.raw

flow = ResearchFlow()
flow.kickoff()

三、关键点

  • Agent 三件套(role / goal / backstory)是 CrewAI 的灵魂。backstory 越具体,LLM 越能稳定地保持人设;空 backstory 会让所有 Agent 退化成「通用助手」,协作效果立降。
  • 任务依赖用 context 字段,不要嵌套 AgentTask(description=..., context=[t1]) 表示「本任务依赖 t1 的输出」,CrewAI 自动按 DAG 调度,比 AutoGen 的 message passing 更直观。
  • Crew ≠ Flow。简单一次性任务用 Crew.kickoff(),长流程 / 状态持久化 / 异常重试Flow + @listen。1.15.x 之前的项目基本只能用前者,1.15.x 之后才进 Flow 时代。
  • Process.hierarchical 默认要配 manager LLM。忘了给 manager_agent 时,CrewAI 会用同一模型做调度,容易陷入「自我对话」;生产里要么显式指定 manager_agent,要么强制 Process.sequential
  • Tools 必须放在 Agent 上,不要全局共享。每个 Agent 的 tools=[...] 决定它能用哪些工具—— Researcher 给 SerperDevTool,Writer 给 FileReadTool,Editor 不给工具,这种「最小授权」能减少幻觉和 token 浪费。
  • 可观测靠 CrewAI 的 tracing,不要 print。设置 CREWAI_TRACING_ENABLED=true 后,LiteLLM / OpenTelemetry 后端能拿到完整事件流;下一篇教程会展开。

mermaid diagram

四、行业影响

CrewAI 与 AutoGen / LangGraph 三足鼎立的格局在 2026 年下半年基本稳定:AutoGen 被微软主推迁移至 Microsoft Agent Framework(企业级),LangGraph 持续深耕 LangChain v1 体系(图状态机 + 持久化),CrewAI 守「上手最快」+「产品化抽象」这条护城河。HN id=43354219 「我用 CrewAI 自动化整个 Gmail 工作流」[200] 26 颗星,印证了「非工程师友好」是真卖点;HN id=44561985「Portia —— 带 auth 和 1000 工具的有状态 Crew AI 替代品」[200] 19 颗星,说明社区开始补 CrewAI 的企业短板。

对中文开发者,36Kr 「CrewAI」[200] 与机器之心「CrewAI」搜索页[200] 均能搜到持续中文报道,质量参差但活跃度有保障。

五、结语

30 分钟跑通的,本质是一段顺序执行的多 Agent 循环;真正难的是上线后如何约束工具调用、控制 token 成本、保留审计日志。下一篇教程会展开 CrewAI + OpenTelemetry + Prometheus 的可观测链路,把研究 Crew 从 demo 推到生产。


参考资料:

官方文档

开源项目

行业报道

社区讨论

对比基准


本文由 AI 生成。内容基于公开资料整理,可能存在事实偏差,引用链接请以原始来源为准。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注