Skip to content

Workflow、Agent 与多 Agent 怎么选:一张工程决策表

优先选择能解决问题的最简单架构:步骤稳定、分支可枚举时用 Workflow;需要根据中间结果动态决定下一步时用单 Agent;只有角色确实拥有不同上下文、工具或并行目标,且协作收益大于协调成本时,才使用多 Agent。不要把“更自主”误当成“更先进”。

先说结论

先问三个问题:

  1. **路径能否预先写出来?**能,就从 Workflow 开始。
  2. **下一步是否必须根据开放式结果临场决定?**是,考虑单 Agent。
  3. **一个 Agent 的上下文、权限或职责是否已经无法保持清晰?**是,再评估多 Agent。

本文解决的是架构选择,不展开 Agent 内部每轮如何执行;运行时细节见Agent 运行机制总览。Tool Calling 与 MCP 只是能力接入方式,也不直接决定采用哪种架构。

适合谁,不适合谁

本文适合:

  • 在立项或重构阶段选择 AI 应用编排方式的开发者;
  • 遇到流程不稳定、Agent 成本过高或多 Agent 相互“聊天”却不产出结果的团队;
  • 需要向面试官解释技术选型依据,而不是只复述框架概念的人。

无论你原来做前端、后端、测试、客户端还是运维,都可以把熟悉的确定流程先建模为 Workflow;只有中间结果确实无法预先枚举时,才把决策权逐步交给 Agent。

本文不适合:

  • 想了解 Agent 感知—决策—执行循环的人;
  • 想配置 MCP Client、MCP Server 或工具 Schema 的人;
  • 已有明确固定流程,只需要某个编排框架代码示例的人。

三种架构的边界

Workflow:控制流由程序决定

Workflow 把步骤、分支、重试和终止条件写在代码或流程图中。模型可以参与分类、抽取、生成,但不能任意改变主流程。

典型例子:上传合同后依次做格式校验、字段抽取、规则比对、人工复核和归档。即使某一步使用大模型,整体路径仍然可预测。

单 Agent:控制流由运行时与模型共同决定

单 Agent 获得一个目标和一组受限工具,根据观察结果反复选择下一步。程序仍控制权限、预算和停止条件,模型只在允许范围内做动态决策。

典型例子:排查线上告警。不同告警可能需要查询日志、指标、发布记录或配置,固定枚举全部路径成本很高,但所有动作可以由一个“故障诊断”角色完成。

多 Agent:多个受限角色通过协议协作

多 Agent 将任务拆给拥有不同目标、上下文、工具或权限的角色,再由确定的协调机制合并结果。它不是让多个相同模型自由讨论。

典型例子:安全变更评审中,代码分析角色只读代码,合规角色只读制度,执行角色必须在两者均通过后才能操作。这里的权限隔离和独立证据可能值得额外协调成本。

核心决策表

判断维度Workflow单 Agent多 Agent
任务路径稳定、可枚举随观察动态变化可拆成多个相对独立目标
成功标准每步均可确定校验最终结果可校验,中间路径开放各角色与最终结果都可校验
工具范围少且调用顺序明确同一角色需要动态选工具工具或权限天然分属不同角色
上下文结构化、规模可控一个上下文可承载不同领域上下文相互干扰
并行价值普通并发任务即可解决单条动态决策链子任务真能独立并行且可合并
风险最容易审计与回放需要动作级策略和预算还需处理委派、冲突和责任归属
延迟与成本最低、最可预测随循环轮次增加通常最高,且有协调开销
首选场景标准业务流程开放式诊断与执行明确的专家分工或权限隔离

一条可执行的选择规则

text
if 步骤和分支可枚举:
    选择 Workflow
else if 一个角色能在单一权限边界内完成任务:
    选择单 Agent
else if 子目标独立、接口明确、收益高于协调成本:
    选择多 Agent
else:
    缩小任务或增加人工决策点,不要强行自治

这不是永久决定。正确做法通常是先用 Workflow 建立可靠基线,再把其中无法枚举的局部替换为 Agent 节点;只有单 Agent 出现可证明的上下文或职责瓶颈时,才拆成多 Agent。

用四类案例做判断

案例一:客服工单分类与派发

需求是读取工单、分类、提取优先级,再按固定规则进入队列。类别和队列都已定义,使用 Workflow。模型只负责分类,程序校验类别并派发。

反例:因为分类使用了大模型,就把整个流程包装成 Agent。这样只会增加不可预测分支,不能提高分类质量。

案例二:跨数据源研究并形成摘要

如果数据源固定、查询模板明确,仍然可以用 Workflow 并行查询再汇总。如果用户问题差异很大,需要根据首轮证据继续选择数据源、追问或修正搜索词,可以用单 Agent,但必须限制来源、轮次和引用要求。

案例三:代码修改与安全审批

“读取需求—修改代码—运行测试—输出 diff”可以先做成单 Agent。若组织要求安全评审者与修改者权限分离,可以拆为多个角色,但审批结果必须通过结构化协议返回,最终写入权限仍由执行系统控制。

反例:创建“产品 Agent、开发 Agent、测试 Agent、经理 Agent”,让它们共享同一工具和上下文自由对话。角色名称不同并不构成有效边界。

案例四:批量生成商品描述

每个商品独立生成并校验,适合 Workflow 的并发任务,而不是多 Agent。并行不等于多 Agent:普通任务队列更便宜、更容易重试,也更容易统计失败项。

从 Workflow 渐进升级

第一步:确定性骨架

先固定输入校验、数据读取、模型调用、结果校验、人工确认和写入。记录每一步耗时、失败率和人工干预原因。

第二步:只开放一个决策点

找到最难枚举的节点,例如“根据诊断结果选择下一个只读查询工具”,将其改为单 Agent 循环。其他步骤保持确定性,避免一次性失去全部控制。

第三步:用数据证明是否要拆角色

只有出现以下证据时才考虑多 Agent:

  • 单上下文经常超过预算,且可按领域稳定切分;
  • 不同子任务需要互斥权限或独立审计;
  • 子任务并行后能显著缩短关键路径;
  • 单角色在目标之间反复冲突,拆分后存在明确交付接口。

拆分后,每个角色都应有输入、输出 Schema、可用工具、预算、成功条件和失败归属。

常见误区与失败边界

误区一:复杂需求就用多 Agent

业务复杂不等于需要多个自主角色。复杂但稳定的财务流程通常更适合 Workflow。判断依据是控制流的不确定性和角色边界,而不是需求文档长度。

误区二:模型更强后可以删除流程约束

模型能力提高可能减少错误,但不会替代鉴权、事务、幂等、审计和合规要求。越接近真实副作用,确定性外壳越重要。

误区三:多 Agent 会自动提升答案质量

如果多个角色共享相同信息、提示和模型,它们的错误可能高度相关。没有独立证据和明确仲裁规则,“互相评审”只会增加 Token 和延迟。

失败边界

以下任一条件成立时,不应升级到 Agent 或多 Agent:

  • 无法定义可验证的成功标准;
  • 工具调用产生不可逆副作用,却没有确认与回滚;
  • 任务错误率、成本和延迟没有基线,无法判断升级收益;
  • 角色之间没有结构化交付接口;
  • 只是为了展示技术,而不是解决已观察到的流程问题。

可执行检查清单

选 Workflow 前

  • [ ] 主步骤和异常分支可以列举
  • [ ] 模型输出可被 Schema 或规则校验
  • [ ] 重试、补偿和人工节点有固定位置
  • [ ] 并行需求可以由普通任务队列解决

选单 Agent 前

  • [ ] 下一步确实依赖开放式观察结果
  • [ ] 一个角色拥有完成任务所需的清晰权限边界
  • [ ] 工具、轮次、时间和费用预算已限制
  • [ ] 成功与停止条件能由运行时验证
  • [ ] 已有 Workflow 基线可用于比较收益

选多 Agent 前

  • [ ] 每个角色有独立目标,而不只是不同人设
  • [ ] 每个角色的输入、输出和工具权限明确
  • [ ] 委派、超时、冲突、合并和失败责任有规则
  • [ ] 并行或隔离收益能覆盖额外延迟与成本
  • [ ] 减少一个角色后系统会丢失必要能力或边界

下一步

回到 Agent 专题 Hub 查看完整学习路径。确定架构后,下一步阅读Tool Calling、MCP 与 Agent 的关系,再为所选架构设计能力接入层,而不是从框架名称反推架构。

AI 应用开发训练营 · 现在开始

别只收藏 AI 文章,今天就做出第一个能上线的项目

文章解决认知,项目才证明能力。把 Agent、RAG、MCP 变成可运行、可展示、可面试表达的成果,现在就从一次岗位准备度自测开始。

立即开始 AI 岗位准备度自测 查看训练营路线
真实学员成果先看成果,再决定是否开始 →
  1. 01选方向
  2. 02做项目
  3. 03出成果
  4. 04拿面试