CrewAI 的核心抽象:role 、 goal 、 backstory
一句话结论:CrewAI 用三个拟人化字段定义每个智能体——角色(role)定身份、目标(goal)定产出、背景故事(backstory)定风格,再把任务像排班一样串成 Crew(队伍)。对习惯”给 AI 分工”的开发者来说,这是上手最快的多智能体框架之一。
五个核心概念
- Agent:一个智能体,由 role/goal/backstory + 可选 LLM 与工具定义。
- Task:一项任务,带 description 、 expected_output 和负责的 agent 。
- Crew:智能体与任务的编组,process 字段决定顺序执行(sequential)还是分层管理(hierarchical)。
- Tool:智能体可调用的外部能力,如联网搜索、文件读写。
- Process:执行策略,入门用 sequential,复杂协作再上 hierarchical 。
最小可跑示例:研究员 + 分析师
from crewai import Agent, Task, Crew
researcher = Agent(
role="资深研究员",
goal="找到关于{topic}的最新、最准确的信息",
backstory="你是有十年经验的行业分析师,擅长把复杂信息整理成清晰的要点。",
allow_delegation=False,
)
analyst = Agent(
role="报告分析师",
goal="把研究结论整理成结构化报告",
backstory="你文字功底扎实,总能从原始素材中提炼出关键洞察。",
)
research = Task(description="深入研究{topic}的现状与趋势",
expected_output="分点列出 10 条关键发现",
agent=researcher)
report = Task(description="基于研究发现撰写报告",
expected_output="带摘要、正文与建议的 Markdown 报告",
agent=analyst,
context=[research])
Crew(agents=[researcher, analyst],
tasks=[research, report],
process="sequential").kickoff(inputs={"topic": "AI 智能体"})
关键在 context=[research]:它声明报告任务消费研究任务的输出,数据就这样在智能体之间流动。
三条实战建议
- expected_output 越具体越好:”分点 10 条”比”一份好报告”的产出质量高一个档次。
- 先 sequential 后 hierarchical:分层模式会引入管理者智能体,token 消耗和调试成本都翻倍。
- allow_delegation 按需打开:智能体互相委派很灵活,但也容易失控循环。
角色设定不是玄学:backstory 里写清楚专业背景与表达习惯,能显著影响产出的文风与颗粒度,相当于给 system prompt 做人设化包装。
与 LangChain 的定位差异可对照站内LangChain 入门教程理解——前者偏协作编排,后者偏组件拼装;不想写代码的低代码路线见Dify 搭建智能体教程;单智能体的推理循环设计参考ReAct 模式实战。
CrewAI 和 LangChain 怎么选
快速搭多角色协作团队选 CrewAI,心智负担小;需要精细控制链路、检索与工具生态时选 LangChain;两者也可混用。
必须用 OpenAI 的模型吗
不必,CrewAI 支持任意符合 OpenAI 兼容接口的模型端点,包括国产模型与本地模型。
任务之间怎么共享数据
默认用 context 参数显式声明上游任务;hierarchical 模式下由管理者自动分发,也可以用输出文件落盘中转。







评论 (0)