CrewAI 的核心设计:角色扮演 + 任务驱动 CrewAI 的设计哲学是把多 Agent 协作抽象为人类团队的工作模式。你定义角色(Agent)、分配任务(Task)、设定流程(Process),框架负责编排执行。
from crewai import Agent, Task, Crew, Process # 定义角色 researcher = Agent( role="市场研究员", goal="收集目标市场的详细数据,包括规模、竞品、趋势", backstory="你是一位有10年经验的市场研究员,擅长数据分析和趋势预测", tools=[search_tool, web_scraper], llm="gpt-4o" ) writer = Agent( role="技术撰稿人", goal="将研究结果转化为清晰、有深度的分析报告", backstory="你曾是科技媒体主编,擅长把复杂技术概念转化为易懂文字", llm="gpt-4o" ) # 定义任务 research_task = Task( description="研究AI Agent框架市场,包括LangChain、CrewAI、AutoGen的市场份额、用户增长、社区活跃度", expected_output="包含数据图表的市场分析报告,至少2000字", agent=researcher ) write_task = Task( description="基于研究结果撰写深度分析文章", expected_output="结构完整的分析文章,含执行摘要、市场概况、竞品分析、趋势预测", expected_output_length="3000字以上", agent=writer, context=[research_task] # 依赖研究任务的输出 ) # 组建团队 crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential # 顺序执行 ) result = crew.kickoff() 这段代码的直觉性很强——你在描述一个团队的工作方式,而不是在写控制流代码。这是 CrewAI 最大的优势。
架构拆解 CrewAI 的架构有三个核心层:
层级 组件 职责 Agent 层 Agent、Role、Goal、Backstory 定义角色身份、目标、能力边界 Task 层 Task、Expected Output、Context 定义工作单元、输出标准、依赖关系 Crew 层 Crew、Process、Flow 编排执行流程、管理 Agent 间通信 Agent 的角色设计 CrewAI 的角色设计不仅是 prompt 工程,还影响工具选择和任务路由:
...