如果你已经用 Dify 做过聊天机器人或知识库问答,那么你只发挥了它 50% 的能力。

真正让 Dify 脱颖而出的,是它的 Workflow(工作流)模式 —— 一个支持多节点、条件判断、循环、函数调用的可视化 AI 编排引擎。

它就像低代码平台中的“流程设计器”,但专为大模型场景优化,能让你构建出:

  • 用户咨询 → 意图识别 → 分流处理 → 自动回复
  • 客户提问 → 检索知识库 → 若无结果则调用 API 查询 CRM
  • 多轮表单填写 → 数据校验 → 生成合同并发送邮件

本文将带你:
✅ 掌握 Workflow 的核心节点类型
✅ 设计复杂业务流程(含条件分支与循环)
✅ 调试技巧与日志查看方法

让你的 AI 应用从“会说话”进化到“会思考、会做事”。


一、什么是 Workflow?与 Chatbot 的本质区别

对比项 Chatbot Workflow
交互方式 单一 Prompt + 对话历史 多节点串联执行
逻辑复杂度 简单问答 支持 if/else、循环、函数调用
是否可编排 ✅ 可视化拖拽式编排
适用场景 客服、问答助手 自动化流程、决策系统

💡 类比:

  • Chatbot = 固定剧本的演员
  • Workflow = 可自由编排的导演

二、核心节点类型详解

Dify 的 Workflow 采用“节点+连线”的图形化设计模式,支持多种功能节点,以下是常用类型:

1. LLM 节点(大模型调用)

  • 功能:调用大模型生成文本
  • 配置项:
    • 提示词模板(支持变量 {{input}}
    • 模型选择(GPT-4、通义千问等)
    • 输出格式(文本、JSON)

🎯 典型用途:意图识别、内容生成、摘要提取


2. 知识检索节点(Knowledge Retrieval)

  • 功能:从指定知识库中检索相关内容
  • 配置项:
    • 选择知识库
    • 设置 top_k 返回数量
    • 启用关键词增强

🎯 典型用途:获取产品信息、查找政策条文


3. If/Else 条件判断节点

  • 功能:根据变量值跳转不同分支
  • 支持表达式:
    {{intent}} == "投诉"
    {{score}} >= 80
    {{has_answer}} is true
    

🎯 典型用途:用户情绪分级 → 普通回复 vs 人工转接


4. HTTP 请求节点(API 调用)

  • 功能:调用外部 RESTful API
  • 配置项:
    • URL、Method(GET/POST)
    • Headers、Body(支持 JSON + 变量注入)
    • 超时设置

🎯 典型用途:查询订单状态、调用 CRM 接口、发送通知


5. 代码执行节点(Code Executor)

  • 功能:运行 Python 或 JavaScript 脚本
  • 安全沙箱机制,防止恶意代码
  • 可访问上下文变量
示例:Python 脚本计算折扣
def main(inputs):
    price = inputs['original_price']
    level = inputs['user_level']
    
    if level == 'vip':
        return {'final_price': price * 0.8}
    else:
        return {'final_price': price}

🎯 典型用途:数据处理、逻辑计算、格式转换


6. 变量赋值节点(Variable Assigner)

  • 功能:设置或更新变量值
  • 支持动态表达式:
    {{current_step}} = "step2"
    {{user_tags}} = ["新客户", "高潜力"]
    

🎯 典型用途:记录流程进度、打标签


7. 循环节点(Iteration)

  • 功能:对列表数据进行遍历处理
  • 输入:一个数组变量(如 {{orders}}
  • 输出:逐条处理后的结果集

🎯 典型用途:批量审核订单、群发个性化消息


8. 开始 & 结束节点

  • Start Node:流程入口,定义输入参数
  • End Node:流程出口,定义返回结果

三、实战案例:构建“用户咨询自动处理系统”

我们来做一个完整的业务流程:
当用户提问时,系统自动识别意图 → 检索知识库 → 若无答案则查询 CRM → 返回结构化回复。

🎯 业务需求

  • 输入:用户问题
  • 输出:
    {
      "answer": "回复内容",
      "source": "knowledge / crm / none"
    }
    

🧱 流程设计(共 6 个节点)

[Start] 
   ↓
[LLM 节点] → “识别用户意图” 
   ↓
[If/Else] → 判断是否为“售后问题”
   ├─ 是 → [知识检索] → [End]
   └─ 否 → [HTTP 请求] 调用 CRM API → [End]

🔧 具体配置说明

1. 意图识别 LLM 节点

Prompt:

请分析用户问题的意图,仅返回以下三类之一:售前咨询、售后服务、其他

问题:{{query}}

输出保存为变量:{{intent}}


2. 条件判断节点

设置规则:

{{intent}} == "售后服务"
  • 成立 → 走“知识库”分支
  • 不成立 → 走“CRM 查询”分支

3. 知识检索节点
  • 选择知识库:“售后服务手册”
  • 返回 top_3 片段
  • 注入 Prompt 回答问题

4. HTTP 请求节点(调用 CRM)
{
  "url": "https://api.yourcrm.com/tickets",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer xxx"
  },
  "body": {
    "question": "{{query}}",
    "user_id": "{{user_id}}"
  }
}

返回结果存入 {{crm_response}}


5. End 节点输出

统一格式:

{
  "answer": "{{final_answer}}",
  "source": "{{source_type}}"
}

通过前面节点设置 final_answersource_type


四、调试与日志查看技巧

再复杂的流程也需要验证。Dify 提供了强大的调试能力。

🔍 调试模式使用步骤

  1. 点击右上角 “调试” 按钮
  2. 输入测试参数(如 query: "我的订单还没发货"
  3. 点击“运行”
  4. 查看每个节点的输入/输出

📋 日志面板功能

运行后可查看:

  • ✅ 每个节点的执行状态(成功/失败)
  • ✅ 输入输出数据(支持展开 JSON)
  • ✅ LLM 调用详情(完整 Prompt + 返回结果)
  • ✅ HTTP 请求原始报文
  • ✅ 代码执行日志(print 输出)

💡 小技巧:点击节点可查看“上下文快照”,了解当前所有变量值。


🛠️ 常见问题排查

问题 排查方法
节点未执行 检查前驱节点是否出错或条件不满足
HTTP 请求失败 查看日志中的 status code 和 error message
变量为空 检查拼写、作用域、是否被正确赋值
流程卡住 检查是否有死循环或超时设置过短

五、高级技巧与最佳实践

✅ 技巧 1:模块化设计

将常用流程(如“身份验证”、“数据清洗”)封装为子 Workflow,在多个应用中复用。

✅ 技巧 2:错误处理

在关键节点后添加“异常捕获”逻辑,避免整个流程中断。

✅ 技巧 3:性能优化

  • 避免频繁调用 LLM
  • 使用缓存机制(如 Redis 存储常见问答)
  • 控制向量检索范围(加元数据过滤)

✅ 技巧 4:版本管理

Dify 支持 Workflow 版本控制,每次修改前建议创建新版本,便于回滚。


✅ 总结:Workflow 是 AI 应用的“指挥中心”

能力 实现方式
复杂决策 If/Else + LLM 意图识别
外部集成 HTTP 节点 + 自定义工具
数据处理 代码节点 + 变量管理
自动化流程 循环 + 条件跳转

Workflow 让 Dify 不再只是一个聊天工具,而是一个真正的 AI 自动化平台

你可以用它构建:

  • 智能客服工单系统
  • 自动生成周报的工作流
  • 多系统联动的 AI Agent

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐