🤖 AI 跟我学 新手入门

Dify 工作流编排实战:调多个模型完成任务

Dify 工作流怎么搭?这篇手把手讲清楚 Dify workflow 节点编排、多模型路由、并行串行、错误重试,附 1 个完整的内容生产工作流案例

发布 2026/05/20

30 秒了解:Dify 工作流是什么

Dify 工作流(Workflow)是 Dify 里把多个节点串成有向流程图的应用类型,你可以让一个任务先经过「检索」→「LLM 改写」→「条件分支」→「另一个 LLM 校验」→「HTTP 推送」,整条流水线无人值守地跑下去。

和单纯的 Chatbot 相比,Dify 工作流的核心差异有 3 点:

  • 多节点串联,每一步可以用不同的模型、不同的工具
  • 支持并行 + 循环 + 分支,复杂业务可以拆细
  • 可以被定时触发或 API 调用,不必有人坐在前面对话

如果你只是想做单轮 QA,用 Chatbot 就够。只要任务超过 3 步、要切模型、要发外部接口,就该上 Workflow

这篇是 Dify 怎么用 的进阶教程,假设你已经能注册账号、配好模型 API Key。如果还没跑通基础流程,先回去看基础篇。

准备工作

项目要求
Dify 账号云版或自部署皆可(建议 v0.15 及以后)
模型 API Key至少 2 个不同厂商(如 DeepSeek + 通义,便于演示多模型路由)
外部接口(选做)飞书 / 钉钉 / 企微 webhook,用来推送结果
知识库(选做)想串「检索 → 生成」就提前建好一个

详细操作步骤

第 1 步:新建 Workflow 应用

进入 Dify 工作室,点 创建应用 → 选 工作流(Workflow) → 命名「多模型内容生产线」→ 写一句描述,点创建。

进入应用后会看到一个空白画布,左上角是节点工具栏,右上角是「试运行」「发布」按钮。

[此处放截图:Dify 新建 Workflow 后的空白画布]

第 2 步:认识 8 类核心节点

工具栏里的节点分 4 类,先把概念记住,再开始拖:

节点作用常见用法
开始 / 结束流程入口和出口定义输入变量、最终返回结果
LLM调一次大模型写文、改文、抽信息、分类
知识检索查知识库 Top K给 LLM 提供上下文
HTTP 请求调任意 RESTful 接口拉数据、推 webhook
代码执行跑 Python 或 Node 片段数据清洗、格式转换
条件分支if-else 逻辑按分类走不同路径
迭代循环处理列表批量处理多条数据
工具调第三方插件联网、绘图、Notion 等

记住一句话:节点之间靠「上一个节点的输出变量」往下传。

第 3 步:拖出最小可用流程(3 节点)

最小可用 Workflow 长这样:开始 → LLM → 结束

操作:

  1. 在「开始」节点里加一个输入变量 topic(类型选 String)
  2. 拖一个 LLM 节点,模型选 DeepSeek-V3,把 prompt 写成「请围绕主题「{{topic}}」写一段 200 字介绍」
  3. 拖一个 结束 节点,输出变量绑定 LLM 节点的 text 字段
  4. 点右上角 试运行,输入 topic = AI 智能体,看是否返回正常结果

跑通就证明你的 Dify 工作流环境是好的,接下来才能往复杂走。

[此处放截图:3 节点最小工作流试运行结果]

第 4 步:加多模型路由(核心场景)

真实业务里经常需要「便宜模型先分类,贵模型再深度处理」。在 Workflow 里这样做:

  1. 开始 节点输入 user_query 字符串变量
  2. LLM 节点 A,模型选最便宜的(如 DeepSeek、豆包 Lite),prompt 写「判断这段话属于哪类:客服咨询 / 投诉建议 / 商务合作 / 其他。只输出分类名」
  3. 条件分支 节点,按 LLM 节点 A 的输出走 4 个分支
  4. 每个分支后面挂一个 LLM 节点 B/C/D/E,按业务选不同模型——客服用 Doubao Pro,投诉用 Claude(更稳重),商务用 GPT-5(更正式),其他用 DeepSeek
  5. 4 个分支最后都汇到 结束 节点,统一输出 answer

这样简单意图用便宜模型分流,复杂任务才用贵模型,月成本能砍掉一半以上。

第 5 步:加并行节点(提速)

如果你有 3 个独立子任务(比如同时翻译成英 / 日 / 韩),可以用「并行」节点拆开同时跑

  1. 主流程到「分发」的地方,连出 3 条线分别接 3 个 LLM 节点
  2. 这 3 个节点没有先后依赖,会并行执行,整体耗时按最慢那条算
  3. 3 条线最后用一个 代码执行节点 合并结果,输出 JSON

并行不是免费的:会同时消耗 3 次模型 Token,注意预算。但对响应时间敏感的场景,省时间比省钱重要

第 6 步:加错误处理 + 重试

LLM 偶尔会超时或返回格式错误。Workflow 节点都支持错误处理:

  1. 点任意 LLM 节点 → 右侧面板 → 错误处理 标签
  2. 勾选 失败时重试,重试次数填 2,每次间隔 5 秒
  3. 仍失败可以选 走备用分支(比如降级到便宜模型)或 直接结束并返回错误信息

生产环境的 Workflow,每个 LLM 节点都该配错误处理,不然单点失败整条流程就挂了。

第 7 步:发布 + 触发

调试好后点右上角 发布。Dify 给 3 种触发方式:

触发方式适合场景
在线试用 URL内部测试、客户演示
API 调用接到你自家产品 / 后端服务
定时任务(部分版本)每天 9 点自动跑

API 调用最常用,调用方式就是带上 Workflow App API Key 的 POST 请求,请求体里写 inputs(输入变量字典)和 response_mode(streaming 或 blocking)。完整字段以 Dify 控制台的 API 文档为准。

# Python 示例:调用一个 Dify Workflow
import requests

url = "https://api.dify.ai/v1/workflows/run"
headers = {
    "Authorization": "Bearer YOUR_APP_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "inputs": {"topic": "AI 智能体"},
    "response_mode": "blocking",
    "user": "user-001",
}
resp = requests.post(url, json=payload, headers=headers, timeout=60)
print(resp.json())

自部署版的 URL 改成你的 Dify 服务地址即可。

5 个让 Dify 工作流更香的技巧

技巧怎么做
变量复用用全局会话变量保存中间状态,跨节点共享
用模板提示词复杂 prompt 抽成模板节点,多个 LLM 节点共用
HTTP 节点接外部 LLM想用 Dify 不直接支持的模型?走 HTTP + OpenAI 兼容接口
用代码节点做 JSON 解析LLM 输出 JSON 后用 Python 节点抽字段,避免下一个 LLM 重新解析
配合 MCP 工具Dify 已支持 MCP,把企业内部数据接入 Workflow

常见坑 + 解决办法

现象原因解决
变量取不到值变量名拼错 / 上游节点没跑成功用试运行模式逐节点查输出,按 ID 而非名字引用变量
LLM 输出 JSON 解析失败模型没严格按 JSON 格式回prompt 里强调「只输出 JSON,不要任何额外文字」+ 用代码节点 try/except 兜底
工作流执行很慢串行节点过多 / 用了大模型能并行的并行 + 简单任务降级到 Doubao Lite / DeepSeek
HTTP 节点超时外部接口慢 / 没设超时调高超时阈值(默认 30 秒)+ 加重试
自部署 Workflow 偶发挂后台 worker 不够用调大 WORKER_REPLICAS 环境变量 + 监控容器 CPU
API 调用返回 401App API Key 错 / 已禁用控制台 → 应用 → API 访问,重新生成 Key

一个完整实战案例:多模型内容生产线

下面这个 Workflow 流程已经在实际项目里跑了好几个月,每天产 50 多篇运营文案,可直接套用到你自家场景:

流程总览

  1. 开始 节点接收 topic(选题)、audience(目标读者)2 个输入
  2. LLM 节点 1(DeepSeek):根据 topic 生成 5 个不同角度的标题
  3. LLM 节点 2(GPT-5):让人工或 AI 选 1 个最优标题(这里走自动模式 + 评分)
  4. 知识检索节点:从「公司品牌资料库」检索相关素材
  5. LLM 节点 3(Claude):基于标题 + 检索素材写 1000 字正文
  6. LLM 节点 4(DeepSeek):检查正文是否含禁用词、品牌口径
  7. 条件分支:通过 → 走推送;不通过 → 回到节点 5 重写
  8. HTTP 节点:把成品推送到飞书机器人通知运营

下面是节点 3 的核心 prompt 模板,你可以直接复制到 Dify 的 LLM 节点:

📋 Prompt 模板

你是一名资深运营内容编辑。

上下文

  • 选题:{{topic}}
  • 目标读者:{{audience}}
  • 已选定标题:{{best_title}}
  • 品牌素材:{{retrieved_context}}

任务

基于以上信息,写一篇 800-1200 字的运营文,要求:

  1. 第一段 50 字以内抓眼球,不能用「在数字化时代」这类八股开头
  2. 全文分 3-5 个小标题,每段 200 字左右
  3. 必须自然引用至少 2 处「品牌素材」中的具体数据或案例
  4. 结尾给读者一个明确的下一步动作(关注公众号 / 加企微 / 试用产品 等任选一个)

输出格式

直接输出正文 Markdown,不要任何前缀说明。

整个 Workflow 用 4 个不同模型互补:DeepSeek 干杂活省钱、GPT-5 选优、Claude 写主稿、DeepSeek 校审。月成本约几百块,比纯用 GPT-5 砍掉了 70%。

进阶 / 下一步

常见问题

Q:Dify 工作流和扣子 Coze 工作流有啥本质差别? A:Dify 工作流偏「开发者友好」——支持代码节点、HTTP 任意接口、私有部署、模型自由切换。扣子工作流偏「业务友好」——节点更少更简单、和字节生态深度整合、不需要懂技术。复杂业务和私有数据选 Dify,轻量场景和小白选扣子

Q:Workflow 一次能调用几个 LLM?有上限吗? A:理论无上限。但单次执行所有 LLM 调用总时长建议控制在 60 秒内,超过就该考虑拆成多个 Workflow 异步串联,或者把简单步骤合并到一个 LLM 调用里。

Q:能不能在 Workflow 里调用另一个 Workflow? A:可以。用 HTTP 节点调子 Workflow 的 API,或者用 Dify 较新版本的「工作流嵌套」节点。复杂业务拆成多个小 Workflow 比堆一个大的更好维护

Q:Workflow 的运行日志怎么看? A:控制台 → 你的应用 → 日志 标签,能看每次运行的输入、每个节点的输出、耗时、Token 消耗。生产环境每周扫一遍日志,能找出最贵和最慢的节点。

Q:自部署 Dify 跑大量 Workflow 性能怎么样? A:取决于你的 worker 数量。单机 8 核 16GB 大约能扛每分钟 50-100 次 Workflow 调用,更多就要加机器或上 Kubernetes 横向扩展。可以先压测再决定配置。

Q:Workflow 能做 Agent 那种「自主决定下一步」的能力吗? A:可以,但不是它的强项。Workflow 是「预定义流程图」,路径基本固定。真要 Agent 那种自主推理就用 Dify 的 Agent 应用类型,或者在 Workflow 里嵌一个 Agent 节点。两种范式可以混搭。