如果你正在使用 Dify 构建 AI 应用是否遇到过这样的困境AI 的回答看似流畅但在关键的业务节点上却总差那么一点“人味儿”或准确性比如一个客服机器人在涉及退款、赔偿等敏感决策时你绝不敢让它完全自主处理一个内容审核助手面对模棱两可的违规内容最终还是需要人工拍板。这正是 Dify 1.15 版本引入“人工介入”功能所要解决的核心痛点。它不是一个简单的“开关”而是一套将人类智慧无缝嵌入 AI 自动化流程的工程化方案。过去我们只能在流程外设置“兜底”检查或者在 AI 犯错后手动修正流程割裂且低效。现在Dify 让“人机协同”成为工作流中一个可编排、可触发、可追溯的标准节点。本文将深入解析 Dify 1.15 的“人工介入”功能。你将了解到它如何通过“审批节点”和“人工触发节点”两种模式在流程的关键环节插入人工审核或决策从而在保持 AI 自动化效率的同时引入人类的判断力、创造力和责任感。更重要的是我们将通过一个完整的“内容审核与发布”实战案例手把手带你配置、测试并理解这一功能的最佳实践让你能立即将其应用到自己的项目中构建更可靠、更可控的 AI 应用。1. 人工介入从“全自动”到“受控智能”的必由之路在 AI 应用开发的早期我们追求的是“全自动化”——输入问题AI 直接给出最终答案。这在很多简单、重复的场景下非常有效。然而一旦涉及复杂逻辑、高风险决策或需要创造性输出的场景纯粹的黑盒自动化就暴露了其局限性不可控、难追溯、风险高。Dify 的“人工介入”功能正是为了弥合“全自动 AI”与“现实业务需求”之间的鸿沟。它的核心价值在于风险控制在金融、法律、医疗、客服等敏感领域AI 的最终输出必须经过人工校验以避免错误或不合规内容带来的损失。质量提升AI 可以生成草稿、提供选项但最终的润色、定稿或创意选择由人类完成结合了机器的效率与人的品味。流程合规许多企业内部流程明确规定某些步骤必须由人工审批。人工介入节点使得 AI 工作流能够嵌入到现有的合规框架中。数据闭环与模型优化人工审核或修改的结果可以作为高质量反馈数据用于后续的模型微调或提示词优化形成正向循环。简单来说“人工介入”不是为了替代 AI而是为了让 AI 在更复杂、更重要的任务中变得真正可用、可信。它标志着 AI 应用开发从“玩具演示”走向“生产级系统”的关键一步。2. Dify 人工介入的两种核心模式Dify 1.15 提供了两种主要的人工介入方式适用于不同的业务场景2.1 审批节点这是一种“拦截-审批”模式。当工作流执行到“审批节点”时流程会自动暂停等待指定的人工操作员在 Dify 控制台进行“通过”或“拒绝”操作。适用场景关键决策点。例如费用报销审批、内容最终发布授权、合同条款确认、高风险操作如删除数据的前置确认。工作流特点流程是线性的、同步的。AI 或上一个节点产生结果后必须等待人工“绿灯”才能继续。用户体验操作员需要在 Dify 的“工作流运行历史”或集成的 Webhook 回调界面中主动处理待办任务。2.2 人工触发节点这是一种“分支-触发”模式。工作流执行到“人工触发节点”时会生成一个可共享的链接。任何人无需登录 Dify点击此链接都可以打开一个定制化的表单界面填写信息并提交。提交的数据将作为变量触发工作流的后续分支继续执行。适用场景信息收集或补充输入。例如AI 生成文章大纲后由人工填写详细要点客服机器人无法确认用户意图时转交人工坐席填写具体问题AI 推荐了几个方案由用户选择最喜欢的一个。工作流特点流程是异步的、事件驱动的。工作流暂停后通过外部事件用户提交表单来驱动后续流程且可以携带新的变量数据。用户体验对最终用户更友好他们在一个简单的 Web 表单中交互完全感知不到背后复杂的 Dify 工作流。核心对比特性审批节点人工触发节点核心目的决策通过/拒绝收集信息或补充输入流程控制线性暂停等待审批动作暂停并生成表单等待表单提交事件操作界面Dify 控制台内部任务列表外部可访问的独立 Web 表单输入数据主要是审批意见文本可定义多个表单项文本、数字、选择等输出影响决定流程是否继续及走向通过/拒绝分支提供新变量数据驱动后续流程典型场景内容发布审批、风险操作确认人工补充创意、用户选择偏好、转人工坐席选择哪种模式取决于你的业务是需要一个“把关人”还是一个“信息提供者”。3. 环境准备与前置条件在开始实战之前请确保你的环境已就绪。Dify 版本必须是Dify 1.15或更高版本。你可以在 Dify 控制台的左下角或系统设置中查看当前版本。如果版本过低请参考官方文档进行升级。访问权限你需要拥有目标应用或工作流的编辑权限。通常你是应用的所有者或团队成员。基础概念理解你已经熟悉 Dify 的工作流画布、节点拖拽连接、变量{{variable}}的使用。如果不熟悉建议先完成一个简单的文本生成工作流。浏览器建议使用最新版的 Chrome、Edge 或 Firefox以确保工作流编辑器的最佳兼容性。4. 实战案例构建一个带人工介入的“内容审核与发布”工作流我们将构建一个模拟真实场景的工作流AI 自动生成一篇技术博客草稿 - 自动进行敏感词和语法检查 -转入人工审批节点等待编辑审核 - 根据审批结果要么发布到模拟平台要么打回修改。4.1 工作流整体设计我们的工作流将包含以下节点开始参数接收用户输入的博客主题。LLM大语言模型根据主题生成博客草稿。代码Python运行一个简单的敏感词检查脚本。审批节点等待人工编辑审核草稿质量。分支IF/ELSE根据审批结果通过/拒绝决定流程走向。LLM通过分支生成发布文案。LLM拒绝分支生成修改意见。结束输出最终结果。4.2 分步配置详解步骤 1创建应用与工作流登录 Dify点击“创建新应用”选择“工作流”类型命名为“AI 博客审核发布助手”。步骤 2配置初始节点与 AI 生成从左侧拖入一个“开始”节点。在“开始”节点的“参数”部分添加一个变量命名为blog_topic类型为“字符串”这是一个用户输入。拖入一个“LLM”节点连接到“开始”节点之后。配置 LLM 节点模型选择你已配置的模型如 GPT-4 Claude 3等。系统提示词你是一位资深技术博客作者。请根据用户提供的主题撰写一篇结构清晰、技术细节扎实的博客草稿。上下文变量添加blog_topic。输出变量名设置为draft_content。步骤 3添加自动化检查代码节点拖入一个“代码”节点Python连接到 LLM 节点之后。配置代码节点编写一个简单的敏感词检查逻辑# 输入上一步生成的草稿内容 draft draft_content # 定义一个简单的敏感词列表实际项目中应从数据库或文件加载 sensitive_words [机密, 绝密, 攻击, 漏洞利用] # 检查逻辑 found_words [] for word in sensitive_words: if word in draft: found_words.append(word) # 构建输出 if found_words: check_result f草稿中可能包含敏感词汇{, .join(found_words)}。建议复核。 check_pass False else: check_result 敏感词检查通过。 check_pass True # 输出变量供后续节点使用 print(check_result)输出变量这里我们通过print输出信息但为了结构化更好的方式是利用 Dify 的变量赋值。我们假设代码节点运行后check_pass(布尔值) 和check_result(字符串) 这两个变量能被下游使用注Dify代码节点需按特定格式输出字典来声明变量请以实际编辑器支持为准。为简化演示我们仅用print输出结果到日志实际审批人会看到这个日志。步骤 4配置核心——审批节点拖入“审批”节点连接到代码节点之后。配置审批节点节点名称编辑审核审批人可以选择“工作空间成员”或“特定成员”。这里选择“工作空间成员”意味着任何有权限的团队成员都可以处理。审批内容配置标题博客草稿审核{{blog_topic}}内容这里我们需要将前几步的结果展示给审批人。使用 Markdown 和变量来组织一个清晰的视图。**待审核的博客草稿** **主题**{{blog_topic}} **AI生成草稿** {{draft_content}} **自动化检查结果** 请查看上方“代码”节点的运行日志 --- **请审核** - [ ] 技术内容准确无误 - [ ] 无敏感或不妥信息 - [ ] 语言流畅结构清晰 审批意见可选输出变量名设置为approval_result。这个变量将是一个对象包含status(通过/拒绝) 和opinion(审批意见) 等字段。步骤 5配置分支逻辑拖入一个“分支IF/ELSE”节点连接到审批节点之后。配置分支条件条件表达式approval_result.status approved具体字段名需根据approval_result的实际结构调整可能是status或state值可能是approved/rejected或pass/fail请以节点说明为准。这个条件将判断审批是否“通过”。步骤 6配置不同分支的后续处理通过分支IF拖入一个“LLM”节点连接到 IF 分支。配置提示词基于以下博客草稿撰写一段吸引人的发布摘要和社交媒体推广文案。博客草稿{{draft_content}}输出变量名release_copy。最后连接一个“结束”节点输出release_copy作为最终结果。拒绝分支ELSE拖入一个“LLM”节点连接到 ELSE 分支。配置提示词编辑拒绝了以下博客草稿审批意见是{{approval_result.opinion}}。请根据意见生成一份具体的、可操作的修改建议列表。原草稿{{draft_content}}输出变量名revision_notes。连接一个“结束”节点输出revision_notes。至此完整的工作流配置完成。你的画布应该类似下图概念图[开始] - [LLM生成草稿] - [代码检查] - [审批节点] - [分支] | (通过) - [LLM写发布文案] - [结束] | (拒绝) - [LLM生成修改意见] - [结束]5. 运行与验证体验人工介入的全过程5.1 触发工作流在工作流编辑页面点击右上角的“发布”按钮。在应用概览页找到“对话”或“工作流运行”区域。在输入框填写博客主题例如“详解 Dify 工作流中的条件分支”然后点击发送。5.2 观察自动化执行工作流将开始运行。你会看到“开始”、“LLM”、“代码”节点依次变为绿色成功。当执行到“审批节点”时流程会暂停节点状态变为“等待中”或类似标识。5.3 进行人工审批此时你需要以“审批人”身份或拥有空间管理权限的身份进行操作。在 Dify 顶部导航栏找到“工作流运行历史”或“待办任务”具体名称可能因版本略有不同。在列表中找到一条状态为“等待审批”的记录标题是“博客草稿审核详解 Dify 工作流中的条件分支”。点击进入审批详情页。这里将完整展示你之前在审批节点中配置的 Markdown 内容包括博客主题、AI生成的完整草稿。仔细阅读草稿和检查日志。在页面底部你会看到“通过”和“拒绝”按钮以及一个可以填写“审批意见”的文本框。模拟两种操作测试通过点击“通过”可以填写意见如“内容不错直接发布”。提交后返回工作流运行历史观察流程是否继续执行了“通过”分支的 LLM 节点并最终输出了发布文案。测试拒绝重新运行一次工作流。当再次暂停在审批节点时点击“拒绝”填写意见如“第二部分的技术原理部分解释不够通俗需要补充示例”。提交后观察流程是否跳转到“拒绝”分支并最终输出了修改建议。5.4 验证结果在“工作流运行历史”中点击每次运行的记录可以展开查看整个工作流的执行轨迹图。你应该能清晰地看到所有节点的执行状态和耗时。“审批节点”处有一个明显的“暂停”图标。根据你的审批操作流程走向了不同的分支。每个节点的输入和输出变量值方便你调试和追溯。这就是人工介入的核心价值流程可控、决策可溯、结果可视。6. 常见问题与排查思路在实际使用中你可能会遇到以下问题问题现象可能原因排查方式解决方案审批节点一直“等待中”在待办列表找不到任务。1. 审批人配置错误如指定了已离职成员。2. 当前登录用户无审批权限。3. 工作流未成功发布或版本不对。1. 检查审批节点的“审批人”设置。2. 确认当前用户是否为工作空间成员或有应用权限。3. 确认运行的是已发布的最新版工作流。1. 将审批人改为“工作空间成员”或正确的成员。2. 让管理员为相应用户分配权限。3. 保存并重新发布工作流。审批通过/拒绝后工作流没有继续执行。1. 分支节点的条件表达式写错无法正确解析approval_result的状态。2. 网络问题导致回调失败。1. 在运行历史中点击审批节点查看其输出的approval_result变量的具体结构JSON格式。2. 检查分支节点的条件表达式是否匹配该结构。1. 根据实际的approval_result结构修正条件表达式例如approval_result ‘approved’或approval_result.status ‘approved’。2. 刷新页面或查看系统日志。人工触发节点生成的链接外部用户无法打开或提交。1. 链接过期。2. Dify 服务部署在内网外网无法访问。3. 表单配置了必填项未填写。1. 检查节点配置是否有超时时间。2. 检查 Dify 服务的网络可达性。3. 测试提交时查看浏览器控制台报错。1. 重新运行工作流生成新链接。2. 如需对外服务需将 Dify 部署在公网或配置反向代理。3. 确保所有必填项已填写。代码节点中的变量无法传递给后续节点。Dify 代码节点中变量输出方式不正确。查看官方文档中关于代码节点输出变量的具体语法。通常需要在代码节点末尾以特定格式输出字典如output{“check_pass”: True, “result”: “ok”}并在节点配置中绑定输出变量。7. 最佳实践与工程建议将人工介入功能用于生产环境时请考虑以下建议明确介入标准在设计工作流时就要定义清楚哪些环节必须引入人工介入。避免过度依赖人工失去自动化意义或介入不足带来风险。通常最终输出、关键决策、涉及外部系统写操作的环节是设置介入点的好地方。优化审批界面充分利用审批节点的“内容”字段使用 Markdown 和变量将前序步骤的关键信息如原始问题、AI分析结果、置信度、参考来源等清晰、结构化地呈现给审批人减少其上下文切换和判断时间。设置超时与兜底策略在审批节点或人工触发节点上可以配置“超时”规则。例如24小时内无人处理则自动执行默认操作如“拒绝”或转给另一人员并发送通知避免流程阻塞。与通知系统集成Dify 的人工介入通常需要人工主动进入控制台处理。为了及时性应结合邮件、钉钉、飞书、企业微信等 Webhook 功能当任务产生时立即通知审批人。这可以通过在审批节点前添加一个“HTTP 请求”节点调用通知 API 来实现。权限隔离对于“审批节点”谨慎使用“工作空间成员”。在生产环境中建议结合 Dify 的“团队协作”功能为特定的应用或工作流配置特定的审批人员组实现权限的精细化管理。数据记录与审计所有的人工介入操作谁、何时、审批结果、意见都会被 Dify 完整记录在运行历史中。这对于满足合规审计要求至关重要。定期导出和分析这些日志可以优化流程和 AI 模型。人工触发节点的体验优化为“人工触发节点”生成的外部表单链接可以考虑使用短链接服务美化并自定义表单的 CSS 样式使其更贴合你的品牌或业务系统提升用户体验。Dify 1.15 的“人工介入”功能为 AI 应用赋予了关键的“控制阀”和“连接器”。它让我们能够构建的不再是黑盒式的自动化流水线而是人机各司其职、紧密协作的智能增强系统。通过本文的实战演练你应该已经掌握了如何在工作流中插入审批和人工触发节点并理解了两者的区别与适用场景。下一步你可以尝试更复杂的场景例如将一个“人工触发节点”用于客户服务当 AI 无法确定用户意图时生成一个表单链接让用户自己描述问题提交后自动创建工单并分配给客服人员。或者将多个“审批节点”串联实现多级复核流程。技术的最终目的是服务于人。Dify 通过“人工介入”这一设计正引导我们走向一个 AI 负责效率与规模人类负责判断与创造的新协作范式。现在就在你的下一个 Dify 项目中尝试加入这个“可控的智能”吧。