← 返回教程

Dify 工作流和 Agent 到底什么区别:谁来决定下一步

2026-09-01 Dify 流程自动化

搜「dify 工作流 agent 区别」的人很多,说明这是个真实的困惑点。而且这个困惑很值得解决——选错了不是效率问题,是整条路走反了。

先给结论,一句话:

工作流:步骤由你定死。Agent:步骤由模型临场决定。

区别就在「谁来决定下一步做什么」。剩下的所有差异,都是从这一条派生出来的。

工作流:你是导演

你事先画好流程图:先做 A,拿到结果做 B,如果 B 满足某条件走 C,否则走 D。

模型在这里只是打工的。 它负责其中某几步的具体执行——理解一段文字、生成一段回复、判断一个分类——但它不决定整体走向。走向是你用连线定死的。

特点

  • 可预测。 同样的输入,走同样的路径。这对需要稳定性的场景很关键。
  • 可调试。 出问题了,你知道是哪一步,能单独看那一步的输入输出。
  • 成本可控。 调用几次模型是确定的,不会突然翻倍。

Agent:你是甲方

你只告诉它目标和可用的工具,让它自己想办法。

它会自己判断:这个问题需不需要查资料?查哪个?查完了够不够回答?不够要不要再查一次?

特点

  • 灵活。 能处理你没预想到的情况。
  • 不可预测。 同样的问题,两次可能走不同的路径,结果也可能不同。
  • 成本不定。 它可能调一次工具就搞定,也可能来回折腾七八轮。
  • 难调试。 出了问题,你得先搞清楚它当时为什么那么决定。

怎么选:问自己三个问题

一、步骤是不是事先能定下来

能定 → 工作流。别浪费 Agent 的灵活性去做一件本来就确定的事,那只会带来不确定性。

定不下来 → 可能需要 Agent。但先确认是真的定不下来,还是你没想清楚。很多「定不下来」其实是需求没梳理明白,梳理完发现就三种情况,那就是三个分支的事。

二、错了的代价有多大

代价大(涉及金额、对外承诺、安全)→ 倾向工作流。你需要的是每一步都可控,而不是让模型自由发挥。

代价小(内部查资料、辅助参考)→ Agent 的灵活性值得一试。

三、要不要跟人解释它为什么这么做

(甲方会问、需要审计)→ 工作流。流程图本身就是解释。

不要 → 都行。

一个实际的判断方法

把这件事讲给同事听。

如果你能说清楚「先查知识库,查到就答,查不到转人工」——这是工作流,而且可能连工作流都不需要,一个带知识库的聊天助手就够了。

如果你只能说「让它自己看着办,能查资料能调工具,把用户的问题解决掉」——那是 Agent 的活。但接着要问自己:你能接受它「看着办」的结果吗?

大多数项目的答案是:都不用

这一段可能有点扫兴,但很实在。

很多需求既不需要工作流也不需要 Agent,一个配了知识库的聊天助手就解决了。

「回答员工关于规章制度的问题」——不需要多步骤流程,不需要自主决策,检索加回答就完了。这种情况下上工作流,只是把三句提示词能解决的事画成了十个节点。

判断标准:如果整个过程就是「理解问题 → 找资料 → 组织答案」,那不需要编排。

混合用法:Agent 里嵌工作流

实际项目里更常见的是混合结构:主流程用工作流定死,把不确定的那一小段交给 Agent。

比如:整体是「接收工单 → 分类 → 处理 → 回复」的固定流程,但「处理」这一步里,让 Agent 自主决定要查哪些资料。

这样既保住了整体的可预测性,又在真正需要灵活的地方给了空间。

Dify 支持把工作流发布成工具被调用,这为这类组合提供了实现方式。具体做法以官方文档为准。

Agent 在生产环境的三个现实问题

如果确实决定用 Agent,有三件事最好提前知道,它们在demo阶段都不明显,上线后会集中出现。

一、成本可能突然翻几倍

Agent 每一轮「思考」都是一次模型调用。它决定查一次资料、看了结果觉得不够、再查一次、再判断——这一个来回可能就是三四次调用,而工作流里同样的事可能只要一次。

更麻烦的是这个次数不固定。简单问题一轮结束,复杂问题可能折腾十轮。所以你没法按「用户数 × 平均轮次」估算成本,得按最坏情况留余量。

实际建议:给 Agent 设一个最大轮次限制,到了就停下来转人工或者返回当前结果。没有这个限制,遇到它「想不明白」的问题时会一直转。

二、同一个问题两次答得不一样

用户会发现这件事,而且会觉得系统不可靠。

工作流的路径是固定的,同一个输入基本走同一条路。Agent 的决策带随机性,两次可能选择不同的工具、不同的顺序,最后答案的措辞甚至结论都可能有出入。

这对内部辅助场景问题不大,对外服务时是个真问题——两个客户拿到不一样的答案,尤其涉及政策、报价、承诺时,会变成纠纷。

三、出了问题很难复盘

工作流出错,你看哪一步失败了就行。Agent 出错,你得先搞清楚它当时为什么那么决定——而它的决策依据是模型内部的判断,不是你写的规则。

所以用 Agent 一定要留完整的执行记录:每一轮它想调什么工具、传了什么参数、拿到什么结果。没有这些,线上问题基本没法查。

一个常见的误解

「用 Agent 显得更先进」。

技术选型不该有这种考虑。Agent 的自主性是要付代价的——不可预测、难调试、成本不定。如果你的场景不需要这份自主性,那这些代价就是白付的。

能用更简单的方案解决,就是更好的方案。 这话在任何技术领域都成立。

什么时候两个都不够

当出现下面这些情况,说明平台层面已经到边界了:

  • 逻辑复杂到节点图看不懂,但又需要工作流的可预测性
  • 需要 Agent 的灵活,但必须机械保证某些安全底线一定被执行
  • 需要和已有系统深度联动

最后一条尤其常见。判断标准我们写在低代码 Agent 平台的能力边界

关于工作流具体什么时候该用、什么时候是在自找麻烦,还有一篇更细的:Dify 工作流什么时候该用。选型拿不准也可以找我们聊聊

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。