AI Agent 与 Workflow 有什么区别?应该如何选型?
简化版
核心区别是谁控制流程:Workflow 的执行路径主要由代码预先定义(代码决定下一步),Agent 让模型根据上下文和工具结果动态决定下一步(模型在边界内决定)。路径稳定、合规要求高 → 优先 Workflow;步骤难预知、需要探索和适应 → 用 Agent,但要接受更高的成本、延迟和不确定性。原则:从最简单的确定性方案开始,只在固定流程覆盖不了任务变化时才增加自主决策。
详细版
- Workflow:程序控制分支、顺序、重试、结束;
- Agent:模型在运行时选择部分步骤、工具、子任务;
- 可混合:固定审批流程内部嵌一个受限 Agent。
选型比五项:路径是否可枚举、失败代价、可审计要求、时延与成本预算、环境变化程度。
完整版教学
一、Workflow 的优势:可控、可测、可审计
固定流程容易做单元测试、容量规划、权限审计、故障恢复。看一个确定性流程:
读取发票 → 校验字段 → 查重 → 进入审批
每一步都是代码写死的分支,输入相同则路径相同 → 可复现、可测试、可审计
关键认知:Workflow 里某一步调用模型做分类/抽取/生成,不会让整个系统变成 Agent——只要流程控制权在代码手里,它就是 Workflow。
二、Agent 的优势:应对不可预知的路径
开放式任务的下一步取决于刚获得的信息,很难预写所有分支:
故障诊断:
先查指标 → 发现 CPU 异常 → 决定查进程列表(若是内存异常则会查别的)
↑ 下一步取决于上一步的结果,无法预先写死所有分支
Agent 能在工具白名单和预算内动态调整路径。代价:非确定性、更多模型调用、更长尾延迟、更复杂的安全与评估。
三、它们不是二选一,而是一条连续谱
自主程度应按需逐级增加,别把多 Agent 当默认终点:
① 单次模型调用
② 固定顺序的模型链
③ 带条件分支和循环的工作流
④ 受限 Agent 选择局部路径
⑤ 多 Agent 协作
← 复杂度、成本、不确定性递增;能用左边解决就别用右边
记忆钩子:先问谁掌握下一步的控制权,再问这份自主性是否真的换来了固定流程无法获得的成功率;能由代码稳定表达的路径,不必升级成 Agent。
四、选型问题清单(五连问)
| 问题 | 偏 Workflow | 偏 Agent |
|---|---|---|
| 步骤能否由业务规则完整描述? | 能 | 不能 |
| 错误动作是否可逆、影响多大? | 不可逆/影响大 | 可逆/影响小 |
| 是否需要稳定复现每次路径? | 需要 | 可接受变化 |
| 动态规划的成功率提升能否覆盖成本? | 不能 | 能 |
| 有无工具权限/超时/预算/人工审批? | —— | 必须有 |
前三项偏确定和高风险 → 让代码掌控主流程。
五、混合架构示例(最实用)
现实系统往往是「Workflow 为主干、Agent 为局部」:
售后系统:
[Workflow] 身份校验 → 订单读取 → 退款审批 → 提交(确定性代码校验金额/权限)
└─ 中间嵌一个 [受限 Agent]:理解用户复杂诉求、收集缺失信息
高风险动作(退款金额、账户权限、最终提交)仍由确定性代码把关
既保留语言交互的灵活,又把高风险动作锁在稳定边界内——这是生产级 Agent 系统的典型形态。外层由代码控制、内层交给模型时边界怎么划,见「工作流和 Agent 能混着用吗?外层由代码控制、内层交给模型,边界怎么划?」。
六、怎样用数字验证选型收益
假设 1000 个工单中,800 个路径可枚举,Workflow 成功率 99%、每单 0.02 元;其余 200 个开放任务若使用固定流程只有 70% 成功率,改用 Agent 后达到 86%、每单 0.30 元。混合方案成本为 800×0.02+200×0.30=76 元,预计完成 800×99%+200×86%=964 单,即总体成功率 96.4%。
若全量都使用 Agent,每单按 0.30 元计需要 300 元;因此混合方案用约四分之一成本,把自主决策限制在真正需要探索的 20% 流量。这个结论仍需与“全量 Workflow”和“全量 Agent”的实际基线比较,因为 Agent 在可枚举任务上未必保持 99% 成功率。
hybrid_cost = 800 × 0.02 + 200 × 0.30 = 76 元
hybrid_success = (792 + 172) / 1000 = 96.4%
all_agent_cost = 1000 × 0.30 = 300 元
上线时还要比较 P95 延迟、人工接管率、高风险违规和失败任务成本。动态规划带来的 16 个百分点提升若只出现在低价值任务,或长尾延迟违反 SLA,也不足以证明应该扩大 Agent 覆盖范围。
七、常见误区与追问
- 误区:用了大模型就是 Agent。 Workflow 里调模型做分类/抽取,流程控制权仍在代码,就是 Workflow。
- 误区:Agent 比 Workflow 先进、该优先用。 应优先确定性方案,只在固定流程覆盖不了时才上 Agent。
- 误区:多 Agent 是终极形态。 自主程度按需增加,多 Agent 成本和失控风险最高,非默认选择。
- 误区:Agent 和 Workflow 二选一。 常混合——Workflow 主干 + 局部受限 Agent。
- 追问:两者核心区别? 谁控制流程——Workflow 是代码决定下一步,Agent 是模型在边界内决定下一步。
- 追问:什么时候选 Workflow? 路径可枚举、失败代价高、需稳定复现、合规审计强的场景。
- 追问:Agent 的代价有哪些? 非确定性、更多模型调用、更长尾延迟、更复杂的安全和评估。
- 追问:混合架构怎么设计? Workflow 管主干和高风险动作,Agent 只负责确实无法预写的局部(理解/收集信息)。
八、加强记忆
Agent vs Workflow 记「谁控制下一步」:Workflow=代码决定下一步(可测/可审计/可复现,稳定高风险场景首选)、Agent=模型在边界内决定下一步(应对不可预知路径,代价是非确定性和成本)。核心心法钉死:优先确定性流程,只把确实无法预写的部分交给 Agent;两者是连续谱(单次调用→模型链→工作流→受限 Agent→多 Agent),按需逐级增加、别把多 Agent 当默认。最实用的是混合——Workflow 主干 + 局部受限 Agent,高风险动作锁在确定性边界内。
项目实战落地
项目里怎么做的
《AI企业流程编排系统》是典型的 Workflow:步骤和走向都由人在后台配置,执行引擎照着连线走。示例流程「客户问题智能回复流程」是这样一条链:
开始(接收客户问题)→ 知识检索 → 大模型(生成回复草稿)→ 工具(清洗文本)
→ 条件(回复是否有效)─┬─ 有效 → HTTP(记录客服工单)→ 结束
└─ 无效 → 结束
- 模型只在大模型节点里写内容:它不决定下一步去哪,也不挑工具;工具节点在配置里写死了工具编码、输入映射和输出路径;
- 分支由连线上的条件决定:条件节点的表达式是
cleanReplyDraft != null && cleanReplyDraft.length > 0,算出的布尔值写回上下文,两条出边各带一个条件,引擎按条件选边; - 每一步都有记录:一次运行写一条运行记录,每个节点写一条节点日志,画布能逐步点亮走过的节点和实际走的那条分支。
《AI Agent 智慧医院智能导诊就诊系统》的分诊则是 Agent:后端不写死「先查档案再查标签」,只把工具清单交给模型,在 ReAct 循环里由模型决定先调哪个、调几轮、什么时候信息够了;同一句主诉跑两次,步骤数也可能不一样。模型最后只给出推荐科室,科室要由代码反查科室表核验,医生则由代码从当天起可挂号且有余号的排班里选定。
为什么这样取舍
- 流程编排用 Workflow:企业里的 AI 需求多是「生成一段、校验一下、查个接口」这类组合,而且经常改;做成可配置节点,改需求只改配置、不改代码,每次运行都能按节点复盘。
- 分诊用 Agent:患者主诉不同,需要查的信息和顺序就不同,写不成一张固定的图;为了不变成黑盒,每一步工具调用都落库可回放,涉及就诊的结论交给代码核验。
面试官还会追问
- 条件节点已经算出了布尔值,为什么真正决定走向的还是连线上的条件表达式?
- 工具节点和 Agent 里的 Function Calling 都在调本地函数,区别在哪?
- 用户在工作台只输入了一个问题,流程需要的上下文 JSON 是怎么组装出来的?
学完《AI企业流程编排系统》,上面这些追问你都会迎刃而解。