想象你是一家餐厅的老板。以前你只雇了一个全能厨师,洗菜、切菜、炒菜、摆盘都是他一个人,忙起来手忙脚乱,出错率也高。后来你决定分工——洗菜阿姨、切菜师傅、炒菜大厨、摆盘专员各司其职,效率确实上来了,可新的麻烦也来了:这些人怎么配合?谁先做?谁听谁的?谁做的结果传给谁?CrewAI 就是给「AI 后厨」设计的协作系统。在它看来,每一个 AI 助手(Agent)就是一位厨师,Task 是写好的工序卡,Process 是后厨的配合方式:顺序 Process 像流水线,一个工位做完传给下一个;层级 Process 像主厨坐镇,把整桌菜拆成任务分给手下,再逐一验收。本文就用这套「后厨逻辑」,带你零基础看懂 CrewAI 的多 Agent 协作。

岗位关联

掌握 Task+Process 的设计与对比,是成为 AI Agent 架构师的必修课——它决定你搭建的智能体团队是高效后厨,还是一团乱麻。

目录
  1. 可视化演示
  2. Task 定义与分配
  3. 顺序 Process
  4. 层级 Process
  5. Agent 通信机制
  6. 结果聚合
  7. 与 AutoGen 对比
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

\u5c55\u793a\u6570\u636e\u5e93\u5d29\u6e83\u540e\u901a\u8fc7WAL\u5199\u524d\u65e5\u5fd7\u8fdb\u884c\u6062\u590d\u7684\u5168\u8fc7\u7a0b\uff1a\u5206\u6790\u65e5\u5fd7\u786e\u5b9a\u4e8b\u52a1\u72b6\u6001\uff0c\u5bf9\u5df2\u63d0\u4ea4\u4e8b\u52a1REDO\u91cd\u505a\uff0c\u5bf9\u672a\u5b8c\u6210\u4e8b\u52a1UNDO\u64a4\u9500\u3002

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

WAL\u6062\u590d\u673a\u5236 T1\u5df2\u63d0\u4ea4\uff1aREDO T2/T3\u672a\u5b8c\u6210\uff1aUNDO ARIES \u5d29\u6e83\u6062\u590d\u4e09\u9636\u6bb5

Task 定义与分配

在老牌餐厅里,每一道工序都有一张挂在墙上的「工序卡」:这道工序做什么、由哪个岗位负责、做完长什么样算合格、允许用哪口锅哪把刀,写得明明白白。新来的厨师不用到处问人,看一眼卡片就知道自己该干什么。CrewAI 的 Task 就是这张工序卡。

在 CrewAI 中,Task 是协作的最小执行单元,它把「做什么、谁来做、做成什么样、用什么做」封装成一条结构化指令。一个清晰的 Task 是高效协作的地基:卡片上的信息模糊,后厨就会乱套;卡片清晰,每个 Agent 才能在自己的岗位上稳定输出。

Task 的核心四要素通常是 description、agent、expected_output 和 tools。description 描述目标,越具体 Agent 越不容易跑偏;agent 把任务绑定到某个有对应技能的 Agent;expected_output 相当于验收标准,告诉 Agent 输出的格式与内容;tools 则允许任务调用搜索、代码解释器等外部能力,相当于允许厨师使用特定的锅和刀。

回到后厨:一张好的工序卡,能让新来的帮厨也立刻上手。在设计多 Agent 系统时,花时间把每个 Task 的四要素写清楚,远比堆砌更多 Agent 更有效——工序卡不清晰,再好的厨师也会炒出黑暗料理。

Task=(description, agent, expected_output, tools)\displaystyle \text{Task} = (\text{description},\ \text{agent},\ \text{expected\_output},\ \text{tools})
这个公式把「一张工序卡」拆成了四个字段:做什么、谁来做、做成什么标准、允许用什么工具。
  1. description(任务描述)告诉 Agent 具体要做什么,目标描述越清晰,产出越可控。
    description\text{description}
  2. agent(负责Agent)指定后厨里由谁来掌勺,把任务绑定到有对应技能的智能体。
    agent\text{agent}
  3. expected_output(期望输出)定义任务做完后应该交出的成果样式,相当于验收标准。
    expected_output\text{expected\_output}
  4. tools(工具集)允许该任务调用的外部工具集合,如搜索、计算、代码执行器等。
    tools\text{tools}

顺序 Process

流水线上,洗好的菜放在传菜口,切菜师傅取走切好,再放到下一个传菜口,炒菜师傅接手……每个工位只做一件事,做完就传给下一位。谁也不会抢跑,也不会有人闲着。这就是后厨的「顺序配合」,也是 CrewAI 中最直观的协作方式。

CrewAI 的 SequentialProcess 正是这种模式:把多个 Task 排成一个列表,按顺序逐个执行。前一个任务的输出会自动成为后续任务的上下文,就像半成品在工位间流动,把信息一层层带下去。组织流水线时,你只需要想清楚任务的前后依赖,并把每一站的「验收标准」写具体,剩下的由框架自动衔接。

这种模式简单、可控、token 开销相对较低。它非常适合流程固定、步骤明确的工作,比如「调研 → 写作 → 审核」的内容生产链。每个 Agent 只拿到它所需要的那部分上下文,不容易被无关信息干扰,产出的稳定性也更高。

流水线的弱点也很明显:如果某一步突然需要拆成更多步骤,整条线就得停下来重新排。所以顺序 Process 适合「菜单早就定好」的常规流程,而面对「客人临时加菜」这类复杂需求,就要请出主厨模式了。

outputi=Agenti(Taski, contexti−1),contexti={output1,…,outputi}\displaystyle \text{output}_i = \text{Agent}_i\left(\text{Task}_i,\ \text{context}_{i-1}\right), \quad \text{context}_i = \{\text{output}_1, \ldots, \text{output}_i\}
第 i 个任务执行时,能看到前 i-1 个任务的全部输出,这就是「半成品一路传递」的数学表达。
  1. Task_i(第i个任务)流水线上第 i 个工位的工序卡,按列表顺序依次排队等待执行。
    Taski\text{Task}_i
  2. context_{i-1}(前序上下文)前 i-1 个任务的输出合集,相当于传给下一位厨师的所有半成品。
    contexti−1={output1,…,outputi−1}\text{context}_{i-1} = \{\text{output}_1, \ldots, \text{output}_{i-1}\}
  3. Agent_i 执行产出第 i 个 Agent 读取任务与上下文,处理后产出自己的输出结果。
    outputi=Agenti(Taski, contexti−1)\text{output}_i = \text{Agent}_i(\text{Task}_i,\ \text{context}_{i-1})
  4. context_i 累积更新把新输出加入上下文集合,供后续任务接力时继续参考使用。
    contexti=contexti−1∪{outputi}\text{context}_i = \text{context}_{i-1} \cup \{\text{output}_i\}

层级 Process

想象一桌婚宴的大订单:主厨不会自己从头炒到尾,而是看一眼菜单,心里快速拆解——凉菜给小李、热菜给老王、汤给阿珍,每人分到一张写着「做什么、几点前完成」的小纸条。做完之后,主厨还要逐盘尝一口,不合格的打回重做。这就是后厨的「主厨模式」。

CrewAI 的 HierarchicalProcess 就是这个模式的软件版:一个 Manager Agent(对应主厨)接收整体目标,动态创建并委派子任务给其他 Agent,然后审查每个返回的结果。要实现它,你需要提供一个 manager_llm 或 manager_agent 来扮演主厨角色,由它来决定「这桌菜怎么拆、派给谁」。

与顺序 Process 最大的不同是:层级模式不要求你预先列出所有子任务——主厨现场拆解。这使它特别适合目标复杂、子任务不确定的场景,比如「写一份商业计划书」这种需要边做边调整的大目标。Manager 还拥有局部决策权,可以决定某个子任务是否需要返工、是否需要调用额外资源。

主厨模式也不是万能的:每拆解一次、审查一次,都要额外花 token 和时间,就像婚宴主厨也要付加班费。当流程已经稳定时,回去用流水线反而更划算——这正是选型时要权衡的关键:你的任务是固定菜单,还是创意大餐?

subtasks=Manager(goal),final=Review(⨁i=1kWorkeri(subtaski))\displaystyle \text{subtasks} = \text{Manager}(\text{goal}), \quad \text{final} = \text{Review}\left(\bigoplus_{i=1}^{k} \text{Worker}_i(\text{subtask}_i)\right)
主厨把大目标拆成子任务,工人各自完成,最后主厨把结果汇总起来统一审查——这是层级模式的核心循环。
  1. Manager(goal) 目标拆解主厨读取整桌菜的订单,把大目标动态拆解成若干个子任务。
    subtasks=Manager(goal)\text{subtasks} = \text{Manager}(\text{goal})
  2. 委派 Worker_i把每个子任务派给具备对应专长的工人 Agent 去执行并回收产出。
    Workeri↦subtaski\text{Worker}_i \mapsto \text{subtask}_i
  3. 结果汇总 ⊕把各工人提交的结果收集到一起,准备交给主厨统一检查验收。
    ⨁i=1kresulti\bigoplus_{i=1}^{k} \text{result}_i
  4. Review 审查把关主厨对汇总结果逐一审查,不合格的任务会被打回重做。
    final=Review(collected)\text{final} = \text{Review}(\text{collected})

Agent 通信机制

后厨里没有人大声聊天。配菜切好,往传菜口一放;炒锅师傅瞄一眼进度板,就知道该炒哪道菜;需要问前台,就通过对讲机说一句。信息跟着「半成品」走,而不是靠人围在一起闲聊。

CrewAI 的 Agent 之间也没有「自由闲聊」。协作信息主要通过任务衔接传递:上一个 Task 的输出,作为下一个 Task 的输入(context)出现。同时,Crew 内的共享上下文与记忆机制,让多个 Agent 能感知同一份「进度板」——比如一个 Agent 中途发现的约束条件,可以被后续 Agent 读取。

除此之外,Agent 可以通过工具调用把外部数据写进上下文,比如搜索结果的摘要、数据库查询结果。一次消息本质上是一个「(发送方 → 接收方:内容)」的结构,只是这个「发送」由任务编排自动完成,而不是 Agent 自己发起。这种设计让每一条信息的来源和去处都可追踪、可审计。

这种「传菜口式」通信的好处是清晰、可控——每一条信息都有来源和去处;缺点是不像真人讨论那样灵活。如果你需要 Agent 像圆桌会议一样你一言我一语地碰撞想法,那就要看 AutoGen 的思路了。

msg=(sender→receiver: content),shared=⋃i=1nmemoryi\displaystyle \text{msg} = (\text{sender} \to \text{receiver}:\ \text{content}), \quad \text{shared} = \bigcup_{i=1}^{n} \text{memory}_i
Agent 之间不「聊天」,而是通过任务结果与共享记忆传递信息——就像后厨靠传菜口而非靠喊话。
  1. msg(消息结构)一次信息传递包含发送方、接收方和内容,对应传菜口的一次递送。
    msg=(sender→receiver: content)\text{msg} = (\text{sender} \to \text{receiver}:\ \text{content})
  2. 输出即消息上一个 Task 的输出自动成为下游 Agent 可见的上下文内容。
    contextnext∋outputprev\text{context}_{\text{next}} \ni \text{output}_{\text{prev}}
  3. 共享记忆 union多个 Agent 的记忆合并成共享语义池,彼此可读取同一份「进度板」。
    shared=⋃i=1nmemoryi\text{shared} = \bigcup_{i=1}^{n} \text{memory}_i
  4. 工具调用回填Agent 通过工具获取的外部数据也会写入上下文,供后续任务使用。
    context=context∪tool_result\text{context} = \text{context} \cup \text{tool\_result}

结果聚合

各灶台的菜炒好了,不能直接端上桌——需要摆盘师傅统一检查:菜量够不够、温度行不行、酱汁有没有串味,最后合成一道完整的大菜再上桌。结果聚合,就是后厨的「摆盘出品」环节。

在多 Agent 协作中,每个 Task 都会产出结果;但如果直接把这些文本拼在一起,往往会有重复、冲突或格式混乱。聚合阶段要做的三件事是:解析(Parse)、合并(⊕)和校验(Validate)。CrewAI 会在每个 Task 结束后解析输出,并把整个 Crew 的成果汇总为一个统一的输出对象。

解析指把原始输出转成结构化内容,比如解析 JSON 或 Markdown 表格;合并是把多份结果去重、去冲突、按顺序拼装;校验则是拿 expected_output 当验收标准,检查最终结果是否达标。如果某份输出格式不符,聚合层可能直接丢弃或要求重跑——就像摆盘师傅把炒糊的菜退回炒灶。

没有摆盘师傅的后厨,菜再好也上不了台面;没有结果聚合的多 Agent 系统,单看每个结果都很好,合在一起却没法用。设计协作流程时,从一开始就要约定好每份输出的格式——聚合的代价,取决于你在 Task 卡片上有没有写清楚「做成什么样」。

final=Validate(⨁i=1nParse(outputi))\displaystyle \text{final} = \text{Validate}\left(\bigoplus_{i=1}^{n} \text{Parse}(\text{output}_i)\right)
先解析、再合并、后校验——这是「摆盘上菜」的标准三步,缺一步都可能端出一盘不能吃的菜。
  1. Parse 输出解析把每个任务的原始输出转换为结构化内容,如 JSON 或 Markdown 表格。
    Parse(outputi)\text{Parse}(\text{output}_i)
  2. ⊕ 结果合并将多份结构化结果拼装成完整内容,去掉重复信息并解决冲突。
    ⨁i=1nParse(outputi)\bigoplus_{i=1}^{n} \text{Parse}(\text{output}_i)
  3. Validate 质量校验检查合并结果是否符合 expected_output 定义的验收标准。
    Validate(merged)\text{Validate}(\text{merged})
  4. final 最终输出通过校验的成果交付给用户,或作为下一流程的输入继续流转。
    final\text{final}

与 AutoGen 对比

如果你走进另一家店,会发现完全不同的风格:他们不设固定流水线,而是让所有厨师围坐在一张大圆桌旁,针对「今天做什么菜」自由发言,聊着聊着决定分工。这家店就是 AutoGen——多智能体的「圆桌会议」模式。

CrewAI 与 AutoGen 最根本的区别在驱动方式:CrewAI 是任务驱动,你事先用 Task+Process 把流程编排好,Agent 按工序执行;AutoGen 是会话驱动,核心是 GroupChat,多个 Agent 在一个会话里轮流发言,对话的走向决定任务如何推进。一句话:CrewAI 像按菜谱执行的后厨,AutoGen 像边聊边定的创意厨房。

各有优劣。CrewAI 的后厨式编排流程显式、可预测、token 开销相对可控,适合生产环境中的确定性流程;AutoGen 的圆桌模式灵活、能自由多轮协商,但结果随机性高、更难审计。选型应该根据任务特征:线性固定流程选顺序 Process;复杂动态目标选层级 Process;需要多 Agent 自由讨论协商则考虑 AutoGen。

回到开头的比喻:你是开一家「固定菜单的流水线餐厅」,还是一家「每天圆桌定菜的创意餐厅」?没有最好的后厨,只有最适合客人需求的模式。作为 AI Agent 架构师,你的职责就是看清每道工序的特征,然后把它们安排到最合理的协作结构中。

Choose={Sequential,线性依赖明确Hierarchical,需动态拆解AutoGen,需开放协作\displaystyle \text{Choose} =\begin{cases}\text{Sequential}, & \text{线性依赖明确}\\\text{Hierarchical}, & \text{需动态拆解}\\\text{AutoGen}, & \text{需开放协作}\end{cases}
选型不是「哪个框架更高级」,而是「哪种协作方式匹配你的任务特征」。
  1. 选型条件判断把选型想象成点菜方式——客人的需求决定后厨用流水线还是主厨负责制。
    Choose=f(task features)\text{Choose} = f(\text{task\ features})
  2. 线性依赖明确任务先后顺序固定、流程确定时,选择顺序 Process 最稳定、最省成本。
    Sequential\text{Sequential}
  3. 需动态拆解目标复杂、子任务不确定时,选择层级 Process,由主厨现场拆解委派。
    Hierarchical\text{Hierarchical}
  4. 需开放协作需要多 Agent 自由对话、多轮协商时,考虑 AutoGen 的 GroupChat。
    AutoGen\text{AutoGen}

AI 应用场景

内容工厂的「流水线三班」

阶段:任务编排 / Agent 协作

解决的问题:传统内容生产靠一个 Agent 从调研写到发布,上下文混杂、角色错位,导致质量不稳定。用顺序 Process 拆成调研 → 写作 → 审核三个 Task,每个 Agent 只干一件事,上下文干净,产出质量大幅提升。

具体案例:某科技媒体用 CrewAI 构建「研究助理 → 撰写专员 → 内容编辑」三 Agent 流水线。研究助理输出带引用的资料包,写手基于资料包生成初稿,编辑按风格指南润色并输出 Markdown,最后由结果聚合层校验格式并发布。

软件项目的主厨式管理

阶段:层级编排 / 动态任务委派

解决的问题:一个复杂需求无法预先列出所有子任务,传统线性流程容易漏步骤。层级 Process 让 Manager 动态拆解目标,按专长委派给不同工程师 Agent,并审查每个产出。

具体案例:研发团队用「技术经理 Agent」接收需求,拆成架构设计、API 实现、测试用例三个子任务,分别派给架构师、后端、测试三个 Agent;Manager 逐个审查输出,不合格打回重做,最终聚合为一份完整的技术方案。

客服工单的聚合分发

阶段:结果聚合 / 意图路由

解决的问题:多个专项 Agent 分别处理「订单问题」「退款问题」「物流问题」,需要把用户意图识别结果聚合,统一路由到正确的 Agent,再把答复汇总成一条用户可见消息。

具体案例:电商客服系统先由意图分类 Agent 打标,再路由到对应专项 Agent;结果聚合层校验答复格式、去重合并,输出单条规范回复,保证用户不会同时收到五条互相矛盾的答案。

Python 演示

python76 行
# 模拟 CrewAI 的 Task + Process 多智能体协作 class Task:    def __init__(self, desc, agent=None, expected_output=""):        self.desc = desc        self.agent = agent        self.expected_output = expected_output        self.output = ""     def run(self):        if self.agent is None:            return ""        self.output = self.agent.execute(self)        return self.output  class Agent:    def __init__(self, name, skill):        self.name = name        self.skill = skill        self.gc_count = 0     def execute(self, task):        self.gc_count += 1        return "[%s] 完成: %s -> %s" % (self.name, task.desc, self.skill)  class ManagerAgent(Agent):    def decompose(self, goal, n):        return ["%s 子任务%d" % (goal, k + 1) for k in range(n)]  def sequential_process(agent_list, task_list):    # 顺序 Process: 依次执行, 前序输出累积为上下文    context = []    for i, task in enumerate(task_list):        if task.agent is None:            task.agent = agent_list[i % len(agent_list)]        task.run()        context.append(task.output)    return context  def hierarchical_process(manager, worker_list, goal, n=3):    # 层级 Process: 主厨拆解目标, 委派工人并回收结果    results = []    for i, desc in enumerate(manager.decompose(goal, n)):        worker = worker_list[i % len(worker_list)]        task = Task(desc, worker)        task.run()        results.append(task.output)    return results  def main():    researcher = Agent("研究员", "资料收集")    writer = Agent("写手", "内容撰写")    editor = Agent("编辑", "质量把关")     print("== 顺序 Process: 流水线协作 ==")    tasks = [        Task("收集 2025 年 AI 芯片市场资料"),        Task("撰写一篇千字市场分析"),        Task("审核并润色文章"),    ]    for out in sequential_process([researcher, writer, editor], tasks):        print(out)     print("\n== 层级 Process: 主厨委派 ==")    boss = ManagerAgent("主编", "任务拆解")    for out in hierarchical_process(boss, [researcher, writer], "发布技术周报", 3):        print(out)  if __name__ == "__main__":    main()
目的:用纯 Python 模拟 CrewAI 的两种协作模式,让你在不依赖外部 API 的前提下理解 Task 如何被 Agent 执行、顺序与层级流程如何编排。
  1. self.output = self.agent.execute(self)任务把工序卡交给绑定的 Agent 执行,产出写入任务对象。
  2. if task.agent is None: task.agent = agent_list[...]未指定负责人的任务,按顺序自动分配到团队成员。
  3. context.append(task.output)前序输出累积进上下文,流水线下一步就能看到半成品。
  4. manager.decompose(goal, n)主厨(Manager)把大目标拆解成 n 个子任务。
  5. worker_list[i % len(worker_list)]轮询分配工人,让团队负载均衡。
  6. task.run()执行单个任务,触发对应 Agent 的 execute 逻辑。

常见误区

误区我觉得把一个大任务拆成十几个小任务,每个 Agent 更专注,效果一定更好。

正解任务拆得过碎会导致上下文传递链变长,通信和 token 开销翻倍,还可能让下游 Agent 面对碎片化输入。就像后厨如果把「切菜」再拆成「洗第一把菜」「洗第二把菜」,反而拖慢出菜。合理的粒度是「一个 Agent 的一次完整产出」。

为何常见:人们容易觉得「分工=越细越好」,却忽略了协作本身是有成本的。

误区层级 Process 有 Manager 统筹,肯定比傻傻排队强,所以无脑用层级模式。

正解线性固定流程用顺序 Process 更省 token、更稳定可控;层级 Process 的 Manager 每轮拆解审查都要额外消耗时间与 token,还引入随机性。主厨模式适合复杂、动态的目标,不适合稳定流水线。

为何常见:把「管理能力」等同于「更好」,忽略了成本和场景匹配。

误区多个 Agent 在一个 Crew 里,应该可以互相发消息、像聊天群一样讨论。

正解CrewAI 的 Agent 不直接对话,协作靠 Task 的输出传递和共享上下文/记忆。就像后厨靠传菜口,而不是各灶台互相喊话。AutoGen 的 GroupChat 才是「自由发言」模式。

为何常见:把多 Agent 框架都想象成「聊天群」,混淆了任务驱动与会话驱动。

误区expected_output 只是个备注,写「结果」两个字就够了,反正 Agent 能理解。

正解expected_output 是 Agent 的验收标准,直接决定输出的格式与质量。写得模糊,Agent 就交来一段「大概相关」的文字;写明「Markdown 表格,含厂商/份额/趋势」,才能得到结构化、可聚合的结果。

为何常见:把 Task 当命令而非「有交付标准的工序卡」,低估了输出标准对下游聚合的影响。

误区把每个 Agent 的输出直接拼成一个长文本,就是结果聚合了。

正解不同 Agent 的输出可能重复、冲突或格式不一致,需要解析、去重、合并和校验。后厨不会把没检查的菜直接端给客人——摆盘前要检查温度、份量和搭配,聚合层就是那道最后的质量关卡。

为何常见:低估了多路输出的一致性处理难度,以为「拼起来」就完成了任务。

面试题

Q1. CrewAI 中 Task 的核心四要素不包括以下哪一项?

单选题 · easy

  • A.description 任务描述
  • B.agent 负责执行的智能体
  • C.expected_output 期望输出
  • D.max_retry 重试次数配置← 正确答案

答案:D。Task 的核心四要素是描述、负责 Agent、期望输出和工具;重试次数属于执行配置,而不是任务本身的定义字段,就像工序卡上不会写「炒糊了重炒几次」。

Q2. 顺序 Process 最核心的执行特征是哪一项?

单选题 · easy

  • A.多个任务并行执行互不干扰
  • B.任务按先后顺序链式传递← 正确答案
  • C.管理器动态拆解子任务
  • D.智能体之间自由对话交流

答案:B。顺序 Process 像流水线,任务一个接一个执行,前一个的输出进入后一个的上下文;并行、动态拆解和自由对话都不是它的特征。

Q3. 适合使用顺序 Process 的场景有哪些特征?

多选题 · mid

  • A.任务之间存在明确先后依赖← 正确答案
  • B.流程固定且不需要动态调整← 正确答案
  • C.需要主厨动态拆解复杂目标
  • D.步骤确定且上下文逐级累积← 正确答案

答案:ABD。顺序 Process 适合线性依赖、流程确定、上下文逐级累积的任务;「主厨动态拆解复杂目标」是层级 Process 的典型场景。

Q4. 在层级 Process 中 Manager 的核心职责是什么?

单选题 · easy

  • A.亲自完成所有具体业务任务
  • B.拆解目标并委派与审查结果← 正确答案
  • C.只负责收集最终输出结果
  • D.直接对外部用户提供服务

答案:B。Manager 像主厨,负责把大目标拆成子任务、委派给合适的工人 Agent,并对回收的结果逐一把关;它不亲自做具体业务,也不直接服务用户。

Q5. 层级 Process 相比顺序 Process 的主要优势在哪?

单选题 · mid

  • A.运行速度和成本一定更低
  • B.能动态适应复杂任务拆解← 正确答案
  • C.完全不需要额外计算消耗
  • D.保证所有任务严格串行化

答案:B。层级 Process 的核心优势是 Manager 可以现场拆解动态变化的复杂目标;它的成本通常更高,而且任务执行不一定是串行,也可能并行委派。

Q6. CrewAI 中 Agent 之间传递信息的方式包含哪些?

多选题 · mid

  • A.前序任务的输出作为上下文← 正确答案
  • B.共享 Crew 的长期记忆库← 正确答案
  • C.任意两个智能体自由聊天
  • D.通过工具调用获取外部数据← 正确答案

答案:ABD。CrewAI 靠任务输出传递、共享记忆和工具调用结果来交换信息;Agent 之间不能绕过任务随意发起自由聊天,那是 AutoGen 的 GroupChat 模式。

Q7. Task 的 expected_output 字段主要起到什么作用?

单选题 · mid

  • A.记录任务执行失败日志
  • B.界定 Agent 产出的验收标准← 正确答案
  • C.限制 Agent 使用全部工具
  • D.设置 Agent 的对话轮次上限

答案:B。expected_output 是交付标准的定义,告诉 Agent 输出要长成什么样,也是结果聚合阶段校验质量的依据;它不负责日志、工具限制或对话轮次。

Q8. 关于 CrewAI 结果聚合流程,下列哪项说法正确?

单选题 · hard

  • A.拼接所有输出即可直接交付
  • B.需要解析合并并进行质量校验← 正确答案
  • C.聚合环节只能交由用户完成
  • D.聚合结果与任务定义无关联

答案:B。聚合需要 Parse(解析)→ ⊕(合并)→ Validate(校验)三步,才能消除重复与冲突;简单拼接和推给用户都不对,聚合与 expected_output 的定义密切相关。

Q9. 关于 CrewAI 与 AutoGen 的差异,下列说法正确的是?

多选题 · hard

  • A.CrewAI 以 Task 驱动并显式编排← 正确答案
  • B.AutoGen 以 GroupChat 会话驱动← 正确答案
  • C.CrewAI 的后厨模式流程更可控← 正确答案
  • D.AutoGen 对于任务顺序感更强

答案:ABC。CrewAI 用 Task+Process 显式编排,流程可控、可预测;AutoGen 用 GroupChat 会话驱动,靠对话推进,灵活性高但顺序不确定性也更强,所以 D 的说法相反。

Q10. 某团队需要多个 Agent 直接对话、多轮协商制定方案,以下哪种方案最合适?

单选题 · extreme

  • A.顺序 Process 固定流水线
  • B.层级 Process 主厨委派
  • C.AutoGen GroupChat 圆桌← 正确答案
  • D.单 Agent 一次性完成输出

答案:C。「直接对话、多轮协商」正是 AutoGen GroupChat 的圆桌会议模式;顺序与层级 Process 都是任务驱动,Agent 之间不自由对话,单 Agent 则根本没有协作。