flag92 flag92
博客
发布于 Tue Mar 03 2026 08:00:00 GMT+0800 (中国标准时间)
深度评测DifyWorkflow

Dify Workflow 实战手册:10 个常用模式

总结 Dify Workflow 在生产环境中最常用的 10 个 pattern——从知识库回退、长会话压缩到错误重试与并发控制,每个附 JSON 片段。

Pattern 1:知识库回退(Fallback)#

问题:Top-1 检索分数低于阈值时不要硬答。

做法:「知识检索 → 条件分支」,分数 < 0.5 时返回 "未找到相关信息,已转人工"

Pattern 2:长会话压缩#

问题:上下文长,token 成本爆炸。

做法:「上下文获取 → LLM 摘要节点 → 把摘要替换原 history」。压缩比一般 5-10x。

Pattern 3:意图识别 + 路由#

问题:售前 / 售后 / 投诉混在一个 Bot 里效果差。

做法:开头先用 LLM 做意图分类(输出 enum),按结果路由到不同分支。

pre_sale

post_sale

complaint

Question

LLM 分类

Workflow A

Workflow B

转人工

Pattern 4:工具调用并发#

问题:要同时查订单 + 物流 + 优惠券,串行慢。

做法:用「迭代」或「并行」节点同时调用三个 HTTP,等三个都返回再汇总。

Pattern 5:错误重试#

问题:HTTP 工具偶尔 500。

做法:HTTP 节点设置「重试 3 次,指数退避」+ 失败兜底分支返回降级答案。

Pattern 6:限流保护#

问题:促销日访问量爆,下游 ERP 被打爆。

做法:在 Workflow 开头加「频率限制」节点(按 user_id),超过 N 次/分钟直接转排队。

Pattern 7:金额二次确认#

问题:用户问退款金额,AI 不能直接算,必须从订单系统读。

做法

1. HTTP(订单 API) → 取订单金额
2. LLM → 用「订单金额变量」生成回复
3. Prompt 加:「金额必须使用 `{{order_amount}}`,禁止改写」

Pattern 8:人工 fallback#

问题:AI 答不出 → 不能尴尬卡住。

做法:失败分支调用 Chatwoot API 创建工单 + 把上下文写入备注。

Pattern 9:多轮表单收集#

问题:要收集姓名、邮箱、问题描述,但用户不会一次都给。

做法:用 Conversation App 类型,每轮检查变量是否齐全,缺什么问什么。

Pattern 10:A/B 测试 Prompt#

问题:不知道改 Prompt 是不是真的提升了效果。

做法:用「变量随机分配」节点把 50% 流量走老 Prompt、50% 走新 Prompt,记录 user_id 标签,事后对比 CSAT。

通用经验#

  • Workflow 节点尽量原子化,方便单独调试
  • 关键变量在「开始」节点声明(不要散落各处)
  • 给每个 LLM 节点设独立的 temperature(生成 vs 分类不同)
  • 用 Dify 的「调试」面板逐步执行——比看完整日志快

站内搜索

按 ⌘ K 随时唤起