想象你是一位电影导演,手里攥着一本厚厚的剧本。你当然不会自己一边演主角、一边扛摄影机、一边打灯光——那又累又拍不好。真正聪明的做法,是召集一支剧组:让资深调研员去翻资料,让文案去打磨台词,让审校去盯穿帮镜头。每个人只负责自己最擅长的一块,而你只需要给每人一份“角色设定”和“任务单”,拍摄就会自动推进。 CrewAI 就是这样一个“智能剧组导演”。它英文名里的 Crew 正是“剧组、团队”的意思。在这个框架里,每个 AI 角色(Agent)都有明确的身份、目标和工具,任务被拆成一场场“戏”,再由内置的流程管理决定先拍哪场、哪场可以同时拍。你只需像填通告单一样,用声明式的配置把“谁来演、演什么”写清楚,剩下的调度与协作全部交给框架。曾经常常要写大量胶水代码的多智能体协作,如今几行配置就能驱动。

岗位关联

对 AI 从业者而言,CrewAI 是掌握“多智能体协作工程化”最快的入口:它把角色、任务、流程三大抽象一次讲透,学完后你会把任何复杂业务拆成可编排的 AI 团队,直接提升交付效率与方案说服力。

目录
  1. 可视化演示
  2. 角色定义
  3. 任务机制
  4. 团队组装
  5. 协作模式
  6. 流程管理
  7. 声明式配置
  8. 实战应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示神经网络反向传播的四个阶段:前向计算、损失评估、梯度反向传播和权重更新,支持逐阶段步进观察。

本节配有交互动效(进入视口后自动加载,约 3KB)。

前向传播阶段 输入数据逐层前向传播,每层计算加权和与激活值 a⁽ˡ⁾ = σ(z⁽ˡ⁾), z⁽ˡ⁾ = W⁽ˡ⁾a⁽ˡ⁻¹⁾ 点击下一步进入损失计算

角色定义

一位导演拿到剧本后,做的第一件事不是喊“开拍”,而是选角。他不会只写一句“主角是个老兵”,而是要化成一份完整的人物小传:这个人叫什么、经历什么、性格如何、这次要达成什么结局。角色立住了,戏才有灵魂。

在 CrewAI 里,Agent 就是你要“选角”的演员,每个 Agent 由三大核心要素定义:role(角色描述)、goal(目标)以及可选的 tools(工具)。role 是身份,goal 是方向,tools 是武器,三者共同决定这个 Agent 在协作中如何思考、如何行动。框架会把 role、goal 和 backstory(背景故事)拼到一起塞进大模型的系统提示词——就像递给演员一份完整小传,模型才清楚该用什么口吻和知识结构来工作。

例如定义一个“资深调研员”Agent:role 写“你是一名有十年经验的科技分析师”,goal 写“为给定主题搜索并提炼关键趋势”,tools 挂上搜索工具。角色写得太空,模型只能“本色出演”,输出泛泛而谈;写得太满,又会让简单任务变得笨重。优秀的人工智能团队,靠的是清晰的角色设定,而不是一味追求更聪明的模型。

就像选角导演在通告单上写下“资深调研员:十年行业经验,目标输出要点清单,允许使用资料库”——一个有血有肉的角色,就这样被定义出来了。

Agent={角色,  目标,  工具}\text{Agent} = \{ \text{角色}, \; \text{目标}, \; \text{工具} \}
一个 Agent 就是一个三元组:身份定义它“是谁”,目标定义它“要什么”,工具定义它“能做什么”。
  1. 角色描述定义 Agent 的身份与专业背景,决定它看问题的视角和说话的口吻。
    角色\text{角色}
  2. 目标设定明确这个 Agent 要为之努力的方向,是它所有行动的内在动力。
    目标\text{目标}
  3. 工具配置挂载搜索、计算、代码执行等能力,决定 Agent 能调用哪些“武器”。
    工具\text{工具}
  4. 集合组装大括号把三个要素收拢成一个完整的 Agent 单元。
    {⋅}\{ \cdot \}

任务机制

选完角,场务要发“拍摄任务单”了。一场戏不能只写“拍点东西”,要写清楚场景、台词和验收标准:这场戏在咖啡馆,男主说三句台词,镜头最后停在窗外。任务单越具体,拍摄越不会跑偏。

在 CrewAI 中,Task 就是这张任务单。每个 Task 包含 description(任务描述)和 expected_output(预期输出)。description 告诉 Agent 具体要做什么,expected_output 定义“拍成什么样算过”——这个验收标准至关重要,它决定了模型是随手交一份大纲,还是一份可以直接用的成品。

任务还可以直接绑定 Agent,例如把“调研 AI Agent 行业趋势”交给“资深调研员”。在顺序流程中,前一个任务的输出会自动成为后一个任务的上下文,就像上一场的素材要送到下一场使用。写任务描述时,把背景、格式、字数都交代清楚,产出质量会立刻上一个台阶。

任务单写得越细,演员越清楚自己要交出什么“样片”;只写一句“你看着办”,最后收到的多半是不能用的废片。

Task=(描述,  预期输出)\text{Task} = ( \text{描述}, \; \text{预期输出} )
任务是“内容”与“验收”的组合:前者定义做什么,后者定义什么算好。
  1. 任务描述用自然语言交代任务背景、内容与约束,是 Agent 行动的剧本。
    描述\text{描述}
  2. 预期输出明确结果的格式与形态,让 Agent 的产出可预期、可验收。
    预期输出\text{预期输出}
  3. 配对绑定圆括号将两者组合成一个完整的任务单元。
    (⋅,⋅)( \cdot , \cdot )

团队组装

演员选好了、戏份拆好了,导演要把所有人召集起来宣布“开机”。在片场,这件事由总通告单完成:今天谁到场、拍哪几场、按什么顺序。所有要素凝聚成一个可执行的整体。

CrewAI 里的 Crew 对象就是这张总通告单,也是整个框架的执行入口。你只需把 agents(代理名单)、tasks(任务清单)和 process(流程模式)装进一个 Crew,再调用 kickoff(),整支智能剧组就开始运转。框架会在内部建立任务与 Agent 的映射关系,并在执行时自动传递上下文。

最简洁的组装几乎只靠声明:Crew(agents=[……], tasks=[……], process=Process.sequential)。agents 决定“谁来演”,tasks 决定“演什么”,process 决定“按什么顺序演”。对开发者而言,复杂的调度细节被封装在框架内部——这正是 CrewAI 降低多智能体开发门槛的关键设计。

通告单一贴出,各部门各就各位——导演喊一声 kickoff,整个剧组就自动跑起来了。

Crew={Agents,  Tasks,  Process}\text{Crew} = \{ \text{Agents}, \; \text{Tasks}, \; \text{Process} \}
剧组 = 演员名单 + 戏份清单 + 拍摄流程,三者齐备即可开机。
  1. 代理名单把已定义好的 Agent 收集成列表,决定参与协作的全部角色。
    Agents\text{Agents}
  2. 任务清单把任务按依赖关系排列,决定整场协作要完成的事情。
    Tasks\text{Tasks}
  3. 流程模式指定顺序、并行或层级等编排方式,决定执行的先后策略。
    Process\text{Process}
  4. 组装容器大括号表示 Crew 是一个容纳以上三者的总容器。
    {⋅}\{ \cdot \}

协作模式

拍戏有两种常见排期:一种是按剧本顺序一场接一场地拍,主演从头待到尾;另一种是分成 A、B 两个摄制组,同时拍没有剧情依赖的戏,最后合并素材。一个剧组选哪种排期,取决于戏与戏之间是否存在勾连。

CrewAI 的协作模式与之对应。顺序执行(sequential)是最常用模式:任务按列表顺序逐个执行,前一个 Agent 的输出作为后一个 Agent 的输入,形成一条连贯“流水线”。并行执行则允许相互独立的任务同时推进,最后由流程统一汇总,非常适合资料收集、多源调研这类场景。层级流程(hierarchical)则额外引入一个 manager agent,由它负责规划任务、分配人手并审核结果,适合目标模糊、需要动态拆解的复杂任务。

在新版 CrewAI 中,如果任务之间没有显式依赖,框架会自动让它们并行执行;一旦存在依赖,则必须等待前序任务完成。模式的选择本质是“确定性”与“灵活性”的权衡:顺序流程好排查、好预测,层级流程更聪明但更难以控制。依赖关系,才是排期的唯一裁判。

今天的排期是“一镜到底”还是“AB 组并行”,全看戏与戏之间有没有剧情勾连——依赖关系是排期的唯一裁判。

Sequential:T1→T2→⋯→TnParallel:Ti∥Tj\text{Sequential}: T_1 \to T_2 \to \cdots \to T_n \qquad \text{Parallel}: T_i \parallel T_j
顺序模式是任务首尾相接的链条;并行模式是互不干扰的任务同时推进。
  1. 顺序箭头箭头表示上游输出流入下游输入,形成严格的先后依赖。
    →\to
  2. 任务编号下标区分不同任务,n 表示整条流水线的任务总数。
    T1,T2,…,TnT_1, T_2, \dots, T_n
  3. 并行记号双竖线表示两个任务互不依赖、可以同时执行。
    ∥\parallel

流程管理

剧组里最难当的是副导演,他要盯住每个部门的进度:灯光好了没、演员到没到、哪场戏卡住了要先暂停、拍完的素材要立刻送剪辑。没有这张“进度总表”,拍摄现场会乱成一锅粥。

在 CrewAI 中,流程管理由 Process 承担。框架内置了顺序与层级两种流程:顺序流程按任务列表依次调度,层级流程由 manager agent 动态规划。你不需要自己写 while 循环、消息队列或状态机——框架负责在正确的时机把正确的任务交给正确的 Agent。

流程管理还包含任务依赖:当一个任务声明需要前序任务的输出时,框架会自动等待并传递上下文;若几个任务互相独立,框架可以并行调度以压缩总耗时。执行过程中出现异常时,你可以捕获 kickoff() 的异常或检查任务输出做兜底。这层内置调度能力正是 CrewAI “开箱即用”的核心卖点:开发者从“如何协调”中被解放出来,专注于“如何定义”。

副导演不用自己喊每一条口令,只需要拿好排期总表——CrewAI 的 Process 就是那个从来不掉链子的副导演。

Process=arrange(Agents,  Tasks)\text{Process} = \text{arrange}\big( \text{Agents}, \; \text{Tasks} \big)
流程 = 对演员和戏份做时序安排的调度函数。
  1. 调度函数arrange 代表框架内置的编排逻辑,负责分配执行顺序。
    arrange(⋅)\text{arrange}( \cdot )
  2. 输入要素调度对象是 Agents 与 Tasks,即谁来做、做什么。
    Agents,Tasks\text{Agents}, \text{Tasks}
  3. 输出结果整个表达式的结果就是一套有序的执行计划。
    Process\text{Process}

声明式配置

拍戏最省心的管理方式,是“一张通告单管到底”:上面只写着谁、在哪、几点、拍什么,至于摄影机怎么架、灯光怎么摆,那是各组自己的事。你不需要给每个人写操作手册。

这正是声明式配置(declarative)的精髓:你只描述“要什么”(who 和 what),框架负责“怎么做”(how)。在 CrewAI 中,Agent、Task、Crew 全部用结构化参数声明,甚至支持 YAML 文件配置,运行时再加载成对象。这与命令式编程形成鲜明对比——后者要求你把每一步调度、每一次调用都写出来,代码量与心智负担成倍增加。

例如一份 crew.yaml 里直接写 agents 和 tasks 的字段列表,主程序只需读取并组装。CrewAI 还提供 Flows 机制,用事件驱动的方式编排任务,适合更复杂的动态流程。声明式配置带来的直接收益是:上手门槛低、易读易维护、团队评审时像对剧本一样对配置文件。对中小团队而言,“少写代码”就是“少有 bug”。

通告单上从不写“如何布光”,导演也从不用代码指挥每一台机器——把“怎么做”交给专业的人,你只负责写出那张漂亮的通告单。

声明(谁来做,  做什么)⇒框架自动处理怎么做\text{声明}\big( \text{谁来做}, \; \text{做什么} \big) \Rightarrow \text{框架自动处理怎么做}
你只提供“谁”和“什么”,箭头右侧的“怎么做”由框架完成。
  1. 声明主体输入只有两个要素——参与角色与任务内容。
    谁来做,做什么\text{谁来做}, \text{做什么}
  2. 蕴含推导双线箭头表示由声明自动推导出执行细节,无需人工书写。
    ⇒\Rightarrow
  3. 框架代劳结论部分代表调度、上下文传递等复杂逻辑由框架封装完成。
    框架自动处理怎么做\text{框架自动处理怎么做}

实战应用

一支磨合成熟的剧组,什么题材都能接:科普纪录片、财经专访、产品宣传片。变化的是剧本,不变的是“角色分工 + 任务编排 + 流程调度”这套方法论。CrewAI 的应用价值就藏在这套可复用的方法论里。

最典型的落地场景是内容创作与研究分析。内容创作常用“调研员 → 文案 → 审校”三角色流水线:调研员收集事实,文案转译成通俗表达,审校把关质量。研究分析则可以派多个研究员 Agent 并行消化不同信源,再统一汇总,把原来按天计的调研周期压缩到分钟级。

这类方案的“质量红利”来自角色隔离:每个 Agent 只做一件最擅长的事,输出经过多轮角色视角的交叉检查,相比单次大模型调用,事实错误与逻辑跳跃明显减少。同时,因为团队结构是声明式的,换主题、加选题、调人数都只是改配置的事——一个团队模板可以复用到几十个内容栏目,这正是工程化带来的长期回报。

只要剧组还在、分工还在、流程还在,下一个题材的片子就能立刻开拍——这就是一支成熟 AI 团队的复用价值。

TeamOutput=Merge(Agent1(O1), Agent2(O2), …, Agentn(On))\text{TeamOutput} = \text{Merge}\big( \text{Agent}_1(O_1), \, \text{Agent}_2(O_2), \, \dots, \, \text{Agent}_n(O_n) \big)
团队最终产出 = 把每个角色各自的输出汇聚成一个完整成果。
  1. 各自产出每个 Agent 按自己的角色产出局部结果。
    OiO_i
  2. 汇聚合并Merge 表示把局部结果按规则组装成整体成果。
    Merge(⋅)\text{Merge}( \cdot )
  3. 团队输出TeamOutput 代表最终交付物,质量优于单次直出。
    TeamOutput\text{TeamOutput}

AI 应用场景

公众号内容生产线

阶段:多 Agent 任务编排与顺序执行

解决的问题:一个人从选题、找料到写稿、改稿往往耗时数小时,且质量不稳定;CrewAI 把流程拆给“调研员、文案、审校”三个角色,各自专注单一职责,产出经过多轮交叉检查后明显更稳。

具体案例:某科技自媒体团队用 CrewAI 定义三个 Agent,输入一个关键词后自动产出带引用来源的文章初稿,写稿时间从 3 小时压缩到 40 分钟,人工只做最后把关。

行业研究报告分析

阶段:并行任务分发与结果合并

解决的问题:传统研究需要研究员逐篇阅读上百份资料,串行处理一周才能完成交叉验证;CrewAI 让多个研究员 Agent 并行领取不同信源,最后统一汇总成同格式要点表,显著缩短调研周期。

具体案例:某券商研究部门用 CrewAI 对 20 家竞品公司的新闻稿做并行分析,每个 Agent 负责 5 家并输出统一格式的要点,分析师只需对合并结果做人工复核。

客服工单智能分诊

阶段:角色分工与工具调用

解决的问题:客服工单积压,分类与回复草稿需要两个岗位衔接,人力成本高;CrewAI 中“分诊员”Agent 判断工单类别,“回复专员”Agent 结合知识库工具起草答复,形成一条自动处理流水线。

具体案例:某 SaaS 公司接入 CrewAI 后,工单平均处理时间从 30 分钟降到 5 分钟,分诊准确率从 78% 提升到 92%。

Python 演示

python61 行
# -*- coding: utf-8 -*-"""CrewAI 角色协作:研究员、文案、审校三角色接力产出文章。"""from crewai import Agent, Task, Crew, Process# 如需联网搜索能力,可安装 crewai_tools 后引入:# from crewai_tools import SerperDevTool  def main():    # 1. 角色定义:身份、目标、背景故事,框架会拼入系统提示词    researcher = Agent(        role="资深调研员",        goal="搜集并提炼 AI Agent 的行业趋势",        backstory="十年经验的科技分析师,擅长检索与归纳",        # tools=[SerperDevTool()]  # 挂载工具,扩展能力边界    )     writer = Agent(        role="技术内容编辑",        goal="把调研要点写成通俗易懂的文章",        backstory="擅长把复杂技术讲清楚的资深编辑",    )     editor = Agent(        role="审校编辑",        goal="核对事实与错别字并输出终稿",        backstory="严谨的出版级审校,关注每一个细节",    )     # 2. 任务机制:描述 + 预期输出,并绑定到指定 Agent    research_task = Task(        description="调研 AI Agent 行业趋势,输出 5 条核心要点",        expected_output="一份包含 5 条要点的清单",        agent=researcher,    )     write_task = Task(        description="根据调研要点撰写一篇 800 字科普文章",        expected_output="一篇 800 字的文章初稿",        agent=writer,    )     review_task = Task(        description="审校初稿,修正事实错误、错别字与逻辑问题",        expected_output="可直接发布的文章终稿",        agent=editor,    )     # 3. 团队组装:演员、戏份、流程一起装进 Crew    crew = Crew(        agents=[researcher, writer, editor],        tasks=[research_task, write_task, review_task],        process=Process.sequential,  # 顺序执行,前序输出流入后序任务    )     # 4. 执行入口:一行启动整支剧组    result = crew.kickoff()    print(result)  if __name__ == "__main__":    main()
目的:演示 CrewAI 中“定义角色 → 声明任务 → 组装 Crew → 启动执行”的完整流程,跑通后可直接替换为业务场景。
  1. from crewai import Agent, Task, Crew, Process把框架四大件一次引入,相当于从器材库领出导演、场记和通告单。
  2. role="资深调研员"定义角色身份,CrewAI 会把 role 与 goal、backstory 一起拼进系统提示词。
  3. # tools=[SerperDevTool()]这一行说明在哪里挂载工具:把真实工具对象放进 tools 列表即可扩展 Agent 能力。
  4. expected_output="一份包含 5 条要点的清单"预期输出是验收标准,越具体,Agent 越不会“交作业式”糊弄。
  5. agent=researcher把任务绑定到指定角色,Crew 才知道这场戏该谁上场。
  6. process=Process.sequential指定顺序流程,前序任务输出自动成为后续任务的上下文。
  7. result = crew.kickoff()一行启动整条流水线,调度与上下文传递由框架内部完成。

常见误区

误区“Agent 不就是一个大模型吗?给它写一句‘你叫小助手’,它就会自动扮演起来,内容质量高低全看模型本身。”

正解角色(role)、目标(goal)和背景故事(backstory)会被框架拼进系统提示词,相当于演员拿到的人物小传。小传越立体,模型越清楚自己该用什么身份、口吻与知识结构来输出。只写名字不写设定,就像让演员演一个“只有名字”的主角,最后只能交出一张白开水般的脸。

为何常见:日常聊天里用“角色扮演”prompt 就能获得不错效果,让人误以为框架中的角色定义也同等简单。

误区“只要把 process 改成并行,所有任务就会同时跑,总时间必然缩短,所以能并行就别用顺序。”

正解并行只对“相互独立”的任务有意义。任务 B 需要任务 A 的输出时,B 必须等待 A,强行并行要么报错、要么退化成名义上的顺序。并行还会带来资源竞争与结果汇总的开销。正确思路是先画依赖图:有依赖就走等待,无依赖才并行。

为何常见:直觉上“同时做=更快”,忽略了任务之间的数据依赖这个硬约束。

误区“CrewAI 都会自动规划了,任务描述写个关键词就行,比如‘写报告’,它自己会知道要写成什么样。”

正解自动规划解决的是“谁来执行、何时执行”,而不是“输出什么”。“写报告”和“写一份 300 字、含三个论据、面向小白读者的报告”得到的产出质量天差地别。expected_output 越明确,Agent 越能对齐验收标准。通告单上只写“拍场戏”的剧组,是拍不出能上映的片子的。

为何常见:被“全自动智能体”的宣传语误导,把框架的调度能力误当成任务理解能力。

误区“多智能体就是要堆角色,7 个不够上 15 个,角色多了总有一个能覆盖到,输出肯定更全面。”

正解每个 Agent 都要消耗一次模型调用,角色越多,链路越长、延迟越高、错误被放大传递的概率越大,甚至会出现互相“甩锅”或改坏彼此产出。实际工程中,3~5 个分工清晰的角色往往比十几个模糊角色更稳定。好导演的剧组不在人多,在人人知道自己该干什么。

为何常见:看到演示里多个 Agent 对话很酷,就把“数量”当成了“质量”,忽略了协作成本随团队规模非线性上涨。

面试题

Q1. CrewAI 中定义一个 Agent 的核心三要素是哪一组?

单选题 · easy

  • A.角色、目标、工具← 正确答案
  • B.主题、标签、备注
  • C.页面、容器、布局
  • D.名称、版本、图标

答案:A。Agent 的三大件是角色、目标与工具,分别解决“是谁、要什么、能做什么”,如同演员的设定、动机和道具。B、C、D 都是无关的展示性描述,不会参与模型提示词的构建。

Q2. 在 CrewAI 中,启动整个协作流程应调用哪个方法?

单选题 · easy

  • A.crew.run() 方法
  • B.crew.start() 方法
  • C.crew.kickoff() 方法← 正确答案
  • D.crew.execute() 方法

答案:C。kickoff() 是 Crew 的标准启动方法,意为“开球/开拍”,CrewAI 官方将团队执行命名为 kickoff。run 是 AutoGen 等框架的写法,start 和 execute 并非 CrewAI 的公开 API。

Q3. CrewAI 的 Process 参数默认采用的执行模式是?

单选题 · easy

  • A.随机执行流程
  • B.顺序执行流程← 正确答案
  • C.并行执行流程
  • D.间隔执行流程

答案:B。默认是顺序执行(sequential):任务按列表顺序逐个执行,前序输出自动传给后续任务,就像剧组一场接一场按剧本拍。“随机执行”和“间隔执行”都不是框架中的概念。

Q4. 以下哪类任务最适合让多个 Agent 并行执行?

单选题 · mid

  • A.依赖上一 Agent 输出的任务
  • B.互相独立的资料收集任务
  • C.同一报告的多轮修改任务← 正确答案
  • D.必须逐级审批的流程任务

答案:C。并行只适用于无数据依赖的任务。独立的资料收集各干各的、最后合并,类似两组摄制组同时拍不同场景;有依赖、需审批、多轮修改的任务都必须串行等待。

Q5. Task 的 expected_output 字段主要作用是什么?

单选题 · mid

  • A.指定控制台打印格式
  • B.规定任务的验收标准← 正确答案
  • C.设置代码运行的超时
  • D.定义数据库表结构

答案:B。expected_output 定义“拍成什么样算过”,是任务单上的验收标准。它不控制打印、超时或数据库,而是让 Agent 明确该交出什么形态的结果,从而约束输出质量。

Q6. 关于 CrewAI 声明式配置的说法,正确的是?

单选题 · mid

  • A.只需声明角色与任务清单← 正确答案
  • B.必须手写全部调度逻辑
  • C.需要精通底层线程模型
  • D.无法支持复杂业务场景

答案:A。声明式风格只写“谁来做、做什么”,调度由框架处理,如同拍戏只需发通告单、不用教摄影机怎么摆。手写调度属于命令式风格,与 CrewAI 的设计正好相反。

Q7. 当一个任务必须使用前一个 Agent 的输出时,最佳做法是?

单选题 · hard

  • A.将任务标注为并行并最后合并
  • B.删除前 Agent 输出以节省开销
  • C.把所有任务合并成一个任务
  • D.保持顺序流程自动传递上下文← 正确答案

答案:D。顺序流程中前序输出会自动成为后续任务的上下文,这是 CrewAI 的内置能力。强行并行会破坏依赖;删输出与合并任务都会丢失应有的分阶段质量检查,反而降低最终质量。

Q8. 使用层级流程(hierarchical)时,通常需要额外配置什么?

单选题 · hard

  • A.多个数据库连接池的配置
  • B.独立图形渲染引擎的支持
  • C.每个 Agent 的专用浏览器
  • D.一个总规划与管理的代理← 正确答案

答案:D。层级流程需要一个 manager agent 负责拆解任务、分配人手和审核结果,相当于剧组里的副导演。数据库、渲染引擎、浏览器都不是层级流程的必要配置项。

Q9. 以下哪些属于 CrewAI 支持的协作流程?(多选)

多选题 · mid

  • A.顺序执行← 正确答案
  • B.并行执行← 正确答案
  • C.层级流程← 正确答案
  • D.随机执行

答案:ABC。官方支持顺序、并行与层级三种:顺序像一镜到底、并行像 AB 组同时拍、层级像导演逐级分派。“随机执行”不是框架提供的流程类型,任务编排始终遵循依赖关系。

Q10. 关于 CrewAI 声明式配置的理解,正确的有哪些?(多选)

多选题 · hard

  • A.只需声明角色与任务即可运行← 正确答案
  • B.框架负责调度与流程管理← 正确答案
  • C.开发者无需编写任何提示词
  • D.开发者需要手工管理线程池

答案:AB。声明式配置把“怎么做”交给框架,开发者只需声明“谁、做什么”。但“无需编写提示词”是误解——角色描述与任务描述本身就是提示词工程的一部分;线程池由框架管理,开发者无需手工操控。