项目为什么选单 Agent、多 Agent 或 Workflow,和其他方案相比有何优势?

考查重点:路径确定性与协作收益。固定路径用Workflow,开放工具决策单Agent,独立专家/并行需多Agent,用同需求评质量、延迟和维护

本题目录

参考答案

核心回答

以下以研搜系统为参考示例:它用 Python 和 DeepAgents 组织一个主 Agent 与三个业务专家,分别访问网络、MySQL 和 RAGFlow,主 Agent 负责理解需求、按需委派、汇总并生成文件。

选择这种主子结构,是因为三类信息获取任务有不同的工具、操作步骤和资料范围,可以形成清楚的子目标;主 Agent 保留最终交付责任。相比把所有规则和工具都交给单 Agent,专业职责更集中,但也增加了任务转述、结果汇总和失败处理的成本。

单 Agent、多 Agent 与 Workflow 不是完全互斥的三选一:前两者主要涉及是否拆分执行者,Workflow 则决定哪些执行路径由程序明确控制。任务简单时用单 Agent;步骤稳定时用函数流程或 Workflow;多个子目标能独立交付、确实需要不同上下文或工具时,再引入多 Agent,并让稳定步骤继续由程序管理。

展开说明

1. 先判断任务的变化发生在哪里

如果用户只是查一份文档,再根据材料回答,一个 Agent 配合检索工具通常就能完成。拆成“检索 Agent、阅读 Agent、回答 Agent”可能只是多传几次相同内容。

如果处理步骤和分支已知,例如取数据、转换格式、校验并导出,Workflow 能明确表达依赖、失败路径和结束条件。节点里可以使用 LLM,但执行顺序不必每次都重新规划。

若任务需要根据新证据选择数据源、继续搜索或改变调查方向,Agent 的动态决策更有价值。进一步拆成多个 Agent,则还要证明子任务边界和独立交付成立,不能把“多步任务”直接等同“多 Agent”。

2. 研搜为什么是三个业务专家,而不是随意增加角色?

这个参考实现的三个自定义专家按数据访问方式划分:网络专家使用搜索工具,数据库专家按表、结构与数据查询步骤工作,RAGFlow 专家访问已配置的知识库助手。主 Agent 直接掌握附件读取、Markdown 生成和 PDF 转换工具。

因此,三个角色对应当前三类专业能力;若出现新的独立数据源或明显不同的任务方法,再决定新增专家还是给现有专家补工具。仅增加一个“思考专家”或“检查专家”,却没有不同的输入、工具和可验收产物,未必值得多一次调用。

用户请求也不必每次经过三个专家。只问公开信息时可以只查询网络;需要对照内部资料时再增加相应来源。独立方向可以考虑并行,有数据依赖的步骤仍应等待上游结果。异步运行入口本身不代表所有专家调用都会同时执行。

3. 哪些地方适合保留明确流程?

“查什么、资料不够时往哪里补查”适合让 Agent 根据当前信息决定;“先有 Markdown 文件才能转换 PDF”则是稳定依赖。可以用函数顺序或 Workflow 控制这些步骤,再让相关 Agent 在节点内完成不确定的分析任务。

如果业务要求某些数据齐全才能生成结论,程序也应检查相应状态,而不是依赖多个 Agent 相互提醒。固定流程和模型决策的边界越清楚,就越容易判断失败来自哪里。

参考代码通过 thread_id 和进程内 checkpointer 延续会话,并按会话组织输出目录。若要支持进程重启后的恢复或更严格的资源权限,需要增加相应存储和执行限制;目录分开不等于具备系统级沙箱。

4. 优势要对应原方案的问题,也要算新增代价

拆分的预期收益可以是:降低单个角色要处理的职责数量、让不同来源各用合适的方法、减少主窗口中的探索细节,或并行处理确实独立的方向。代价则包括上下文转述、主 Agent 汇总、更多模型调用以及部分失败后的协调。

可以用相同任务对照“单 Agent 配全套工具”“当前主子结构”和“步骤明确的工作流方案”,比较答案与证据完整性、任务成功率、耗时和成本。若只是简单问题,拆分后质量没有改善却更慢,就应减少角色或缩短路径;如果几个角色必须频繁同步同一份状态,也可能适合合并。

常见追问

为什么不把所有工具直接给单 Agent?

可以,尤其是工具少、任务简单时。只有当不同工具的说明和使用过程开始互相干扰,或专业任务能独立完成时,拆分才有理由。动态筛选工具、按需加载 Skill 也可能缓解问题,不一定必须增加 Agent。

多 Agent 一定比串行 Workflow 快吗?

不一定。多 Agent 可以串行执行,Workflow 也支持并行。速度取决于依赖关系、并发能力、模型调用量和汇总成本,不能把“多 Agent”直接当成“并发更快”。

用了 LangGraph,就一定是 Workflow 吗?

LangGraph 可以表达固定流程,也能承载模型驱动的工具循环和多 Agent 交接。要看实际节点、边和状态由谁决定,不能只根据框架名判断架构模式。

对应教程

  • 研搜:主智能体搭建与异步执行:理解主 Agent、三个业务专家和文件工具的真实分工,再分析拆分是否对应任务需求。
  • Agent 智能体:对照动态决策、Workflow 与 Agent 混合等方式,理解执行者数量和控制流并非同一个选型维度。

参考资料

相关面经

21 篇

长鑫存储

Agent 开发工程师
查看原面经 →
自研 CodeAgent,你会选单还是多 Agent
为什么不直接用单 Agent 做大重构

快手

Agent 开发工程师
二面
查看原面经 →
设计一个多 Agent 系统时,你会怎样划分角色和协作边界?它相比单一 Workflow,适合解决哪些问题?

小天才

AI 应用工程师(穿戴)
校招秋招一面
查看原面经 →
为什么采用单 Agent 工作流,不使用多 Agent?

蚂蚁集团

AI Agent 应用工程师
查看原面经 →
多Agent协作相比Workflow,优势体现在哪里

滴滴

Java 开发工程师
一面
查看原面经 →
为什么选择 ReAct?固定工作流不行吗?
展开剩余 16 篇面经

字节跳动

全栈开发工程师
二面
查看原面经 →
你说 Agent 应该自主判断、决策,但实际又使用固定的 Workflow 编排,没有完全采用 ReAct 等自主决策模式,这是怎么考虑的?
是否希望整个流程的骨架与功能点固定下来?
你的方案是一个主 Agent 配合若干功能,还是拆成多个 Agent?是否可以概括为“单 Agent + 多 Skill”?
研发平台和电商下单都是相对固定的流程,为什么前者使用多 Agent,后者使用单 Agent?这两种结构的划分依据是什么?

网易

Agent 开发工程师
一面
查看原面经 →
Multi-Agent适用场景?为什么拆分多个Agent而非单Agent?

百度

Agent 算法工程师
一面、二面
查看原面经 →
单Agent与多Agent的差异、适用场景。

字节跳动

AI 应用工程师
一面
查看原面经 →
需要几个 agent?架构怎么设计?

美团

AI Agent 开发工程师
一面
查看原面经 →
技术选型,比如多agent和单agent,微调和rag,llm记忆(其实就是prefill阶段)

字节跳动

AI 数据运营实习生(自动化方向)
实习一面
查看原面经 →
项目追问
你为什么选择这个架构,你想解决的问题是什么?是科研的搜索吗?

虾皮

Agent 开发工程师
秋招一面
查看原面经 →
项目中采用了单Agent、多Agent还是Workflow编排模式?为什么选择这种方案?相比其他方案有什么优势?

小满科技

Agent 开发
社招一面
查看原面经 →
Multi-Agent 架构为什么不靠单个全能 Agent?不拆 Agent 用 Skill 路由行不行?

快手

Agent 开发
日常实习一面
查看原面经 →
你这个Agent是ReAct还是工作流?为什么?

字节跳动

AI Agent 开发
秋招一面
查看原面经 →
在Agent架构设计中,为什么选择多Agent协作,而不是单Agent完成所有任务?

字节跳动

后端开发工程师
社招一面、二面、三面
查看原面经 →
这里为啥要用多agent? 平时啥时候会用多agent?

百度

Agent 算法工程师
实习一面
查看原面经 →
你做的Agent架构是不是Workflow范式?

字节跳动

Agent 开发
二面
查看原面经 →
你之前的Agent项目用的什么架构?LangGraph还是自研?是Master+Sub Agent还是Workflow?为啥这么选型?

蚂蚁集团

AI Agent
暑期实习一面
查看原面经 →
和单智能体比好在哪里

公司未注明

Agent
查看原面经 →
项目中为何设计 6 个 Agent?每个 Agent 分别负责什么职责?

浩鲸科技

Java 开发工程师
日常实习一面
查看原面经 →
为什么使用多agent而不是单个agent

收录题集

3 个来源,共4 份题集

Agent开发面试题

摸鱼酱mio · 个人整理 · 1 条原题

查看题集 →

Agent 面试题

小林 Coding · 个人整理 · 1 条原题

查看题集 →

Agent与工具调用

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

项目论文与经历

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

相关题目

4 题