Dify 1.15 人工介入功能详解:构建人机协同AI工作流实战

发布时间:2026/7/5 1:00:01
Dify 1.15 人工介入功能详解:构建人机协同AI工作流实战 在实际企业级 AI 应用开发中构建一个完全自动化的流程是理想状态但现实情况是复杂业务逻辑、合规要求或模型能力的边界常常需要引入“人”的判断和干预。Dify 作为一个领先的 LLM 应用开发平台其“人工介入”功能正是为了解决这一核心痛点。它允许你在 AI 工作流的特定节点暂停将决策权或审核权交还给人类操作员待人工处理完成后再继续后续的自动化流程。这不仅是简单的“审批”而是将人类智慧无缝嵌入到 AI 驱动的自动化链条中实现人机协同。本文将深入解析 Dify 1.15 版本中人工介入功能的设计理念、核心机制与实战配置。无论你是希望为 AI 客服添加敏感问题人工审核还是为内容生成流程加入编辑校对环节亦或是为数据标注任务设计人机回圈都能通过本文掌握从零搭建一个具备人工介入能力的 Dify 工作流。我们将从概念理解开始逐步完成环境准备、工作流构建、节点配置、运行测试并最终探讨生产环境下的最佳实践与排错指南。1. 理解 Dify 人工介入的核心价值与工作机制在深入配置之前必须厘清人工介入在 Dify 工作流中的定位。它不是一个独立的功能而是工作流节点Node的一种特殊类型。理解其工作机制有助于我们在设计工作流时做出更合理的架构决策。1.1 人工介入解决了什么问题纯粹的 AI 自动化流程面临几个固有挑战不确定性处理当 LLM 的输出置信度低、存在多种可能解或需要主观判断时纯 AI 难以做出可靠决策。合规与安全审核在金融、医疗、法律等领域或涉及用户隐私、公司机密的内容生成必须经过人工审核才能发布。复杂业务逻辑某些决策需要查询外部数据库、调用内部 API 或基于非文本信息如图片、表格这些逻辑难以全部用自然语言描述给 LLM。质量控制与迭代通过人工对 AI 输出进行纠正或评分可以生成高质量的数据用于后续的模型微调RLHF形成正向反馈循环。Dify 的人工介入节点就像一个智能开关。当工作流执行到该节点时它会暂停并创建一个待处理任务。这个任务会被分配给指定的人工操作员或操作员组操作员在 Dify 提供的界面上查看上下文信息做出判断、修改内容或提供输入然后点击“通过”工作流才会从该节点继续向下执行。1.2 人工介入节点的关键属性一个配置完善的人工介入节点包含以下几个关键部分触发条件决定工作流何时进入人工介入。可以是无条件每次必走也可以是基于前面节点输出的条件判断例如当情感分析为“负面”时才转人工。指派对象任务分配给谁可以是特定的用户、用户组或由具有特定角色如“管理员”、“审核员”的用户领取。操作界面人工操作员看到什么你需要定义展示给操作员的表单包括只读的上下文变量如用户原始问题、AI 的初始回复和可编辑的字段如最终答复、审核意见、评分。超时与重试策略如果人工操作员长时间未处理系统该如何应对是自动超时跳过还是转给其他人或是执行备用分支输出变量人工处理的结果如修改后的文本、选择的选项、填写的意见如何转化为工作流变量供后续节点使用。理解这些属性是后续进行有效配置的基础。2. 环境准备与 Dify 工作流基础在开始配置人工介入之前你需要一个可用的 Dify 环境。我们将从环境准备开始并快速回顾创建基础工作流的关键步骤。2.1 Dify 部署与访问Dify 支持多种部署方式。对于开发和测试我们推荐使用 Docker Compose这是最快捷、隔离性最好的方式。获取部署文件访问 Dify 官方 GitHub 仓库的 Release 页面下载对应版本的docker-compose.yml文件。确保你选择的是 1.15 或更高版本。启动服务在存放docker-compose.yml的目录下执行以下命令。# 启动所有服务 docker-compose up -d # 查看日志确认服务启动成功 docker-compose logs -f dify-api访问控制台服务启动后在浏览器中访问http://localhost:3000默认端口。首次访问需要创建管理员账户。配置模型供应商进入控制台后在“设置”-“模型供应商”中添加你的 OpenAI、Azure OpenAI 或 Anthropic 等 API 密钥确保基础 LLM 调用可用。注意生产环境部署需要考虑数据库持久化、网络配置、HTTPS、监控和备份等Docker Compose 示例仅适用于评估和开发。2.2 创建你的第一个基础工作流人工介入节点必须嵌入在一个工作流中。我们先创建一个最简单的文本生成工作流作为“靶子”。进入工作流设计器在 Dify 控制台左侧导航栏点击“工作流”然后点击“创建新工作流”。添加开始节点和 LLM 节点从左侧节点库拖拽“开始”节点到画布。拖拽一个“LLM”节点如“对话”或“文本生成”到画布。连接“开始”节点的输出到“LLM”节点的输入。配置 LLM 节点点击 LLM 节点在右侧面板选择模型如 gpt-4o-mini。在“上下文”区域配置系统提示词例如“你是一个友好的客服助手。”在“对话内容”区域将变量{{#context.query#}}填入用户问题位置。这个变量来自开始节点。配置开始节点点击开始节点在右侧“变量”部分添加一个名为query的字符串类型变量。这代表了用户输入。测试运行点击右上角的“运行”按钮在弹出窗的query字段输入“你好”点击运行。你应该能在 LLM 节点后看到生成的回复。至此一个基础的自动化文本生成流水线就完成了。接下来我们将在这个流水线中插入人工审核环节。3. 构建带有人工介入的客服审核工作流我们将构建一个经典的场景AI 客服自动回复但当识别到用户问题涉及“投诉”或“退款”时自动转交人工客服进行审核和最终回复。3.1 工作流结构设计整个工作流将包含以下节点和逻辑开始接收用户问题 (query)。分类判断使用一个 LLM 节点对用户问题进行意图分类判断是否需要人工介入。条件分支根据分类结果决定流程走向。人工介入如果需要人工则暂停流程等待客服处理。AI 回复如果不需要人工或人工审核后由 AI 或人工生成最终回复。结束输出最终结果。3.2 逐步配置与实现步骤一添加并配置分类节点从节点库拖拽一个新的“LLM”节点到画布放在开始节点和第一个 LLM 节点之间。将其重命名为“意图分类”。连接“开始”节点到“意图分类”节点。配置该节点模型选择一个快速且便宜的分类模型如 gpt-3.5-turbo。系统提示词你是一个意图分类器。请分析用户的输入判断其是否涉及“投诉”、“退款”、“纠纷”、“法律咨询”或“高管联系”等敏感或复杂话题。 你只需要输出一个单词NEED_HUMAN 或 AUTO_REPLY。 如果涉及上述敏感话题输出 NEED_HUMAN否则输出 AUTO_REPLY。 不要输出任何其他解释。用户问题填入{{query}}。为了后续使用分类结果我们需要将 LLM 的输出赋值给一个变量。在该节点的“高级”设置中找到“回答变量”将其设置为classification_result。这样LLM 的输出NEED_HUMAN或AUTO_REPLY就会被保存到工作流变量classification_result中。步骤二添加条件分支节点从节点库拖拽“条件判断”节点到画布。连接“意图分类”节点到“条件判断”节点。配置条件分支点击“条件判断”节点在右侧面板点击“添加条件”。在第一个条件IF的规则中设置变量选择classification_result判断等于值输入NEED_HUMAN这个条件的出口我们将其重命名为“转人工”。系统会自动生成一个“其他”出口我们将其重命名为“自动回复”。步骤三配置人工介入节点这是最核心的一步。从节点库拖拽“人工介入”节点到画布。将其连接到“条件判断”节点的“转人工”出口。配置人工介入节点节点名称命名为“人工审核”。指派给方式选择“指定成员”。你也可以选择“角色”例如“审核员”这需要先在团队管理中设置角色。成员从下拉列表中选择一个或多个已有的 Dify 用户作为审核员。为了测试你可以选择自己的账户。表单配置这是定义审核员操作界面的地方。点击“添加字段”。字段1只读显示用户问题标题用户原始问题变量名original_query(自动生成)类型选择“文本”默认值填入{{query}}编辑权限取消勾选“可编辑”使其成为只读字段。字段2只读显示AI初始回复我们需要先让 AI 生成一个初始回复。因此从“条件判断”的“转人工”出口先连接到一个新的“LLM”节点生成初始回复再将这个 LLM 节点连接到“人工介入”节点。配置这个 LLM 节点生成基于{{query}}的客服回复并将其输出赋值给变量ai_draft_reply。然后在人工介入节点的表单中标题AI 建议回复变量名ai_draft类型选择“文本”默认值填入{{ai_draft_reply}}编辑权限取消勾选“可编辑”。字段3可编辑最终回复标题最终回复内容变量名final_reply类型选择“文本”默认值填入{{ai_draft_reply}}这样审核员可以在 AI 建议的基础上修改。编辑权限保持勾选“可编辑”。字段4可编辑审核意见标题审核意见变量名review_comment类型选择“文本”默认值留空。编辑权限保持勾选“可编辑”。高级设置超时设置一个超时时间如30分钟和超时后操作如“自动通过并继续”。这可以防止工作流因无人处理而永久挂起。步骤四整合流程与输出自动回复分支从“条件判断”节点的“自动回复”出口连接到你最初创建的那个 LLM 节点或新建一个用于处理无需人工的常规问题。将此节点的输出赋值给变量auto_final_reply。人工分支输出从“人工介入”节点的输出端连接出去。人工处理完成后final_reply变量就包含了审核员确定的最终内容。汇聚与结束你需要使用一个“答案”节点或“结束”节点来输出最终结果。这里需要一个逻辑来处理两个分支的变量。方法A使用“变量赋值”节点。在“自动回复”分支后设置一个变量赋值节点将auto_final_reply赋值给一个通用变量output。在“人工介入”分支后也设置一个变量赋值节点将final_reply赋值给同一个变量output。然后将两个变量赋值节点连接到同一个“结束”节点。方法B更清晰使用“条件判断”后的“其他”分支并配合变量。但上述方法A在简单场景下更直观。配置“结束”节点在其变量中输出{{output}}或{{final_reply}}等最终结果变量。完成后的简化工作流图应类似开始 - 意图分类 - 条件判断 - (是) - AI生成草稿 - 人工介入 - 变量赋值 - 结束条件判断 - (否) - AI直接回复 - 变量赋值 - 结束。4. 运行、测试与验证人工介入流程配置完成后必须进行端到端的测试验证整个流程是否符合预期。4.1 发布工作流在工作流编辑界面点击右上角的“发布”按钮。为这个版本添加一个备注例如“初版添加投诉类问题人工审核”。发布后工作流会生成一个独立的 API 端点。你可以通过“应用”功能将其封装为一个可访问的 Web 应用或 API。4.2 模拟测试人工介入触发人工介入通过运行测试或调用 API发送一个包含“投诉”关键词的查询例如“我要投诉你们的产品质量有问题”查看待处理任务以审核员身份或你指派给自己的账户登录 Dify 控制台。在左侧导航栏点击“待办”。你应该能看到一条待处理的“人工审核”任务。处理人工任务点击该任务进入处理界面。你会看到之前配置的表单“用户原始问题”和“AI 建议回复”是只读的“最终回复内容”和“审核意见”是可编辑的。审核员可以修改“最终回复内容”并填写“审核意见”例如“用户情绪激动建议提供补偿方案并致电跟进。”点击“通过并继续”。验证流程继续任务完成后返回工作流运行历史或通过 API 轮询结果。你应该能看到工作流已执行完毕并且最终输出的是审核员修改后的“最终回复内容”而不是最初的 AI 草稿。测试自动分支发送一个普通查询如“你们的营业时间是什么”验证流程是否绕过人工节点直接由 AI 回复。4.3 关键验证点条件触发是否只有特定意图的问题触发了人工介入表单展示审核员界面显示的信息是否准确、完整变量传递审核员修改的内容是否正确传递到了工作流下游并作为最终输出超时机制可以测试等待超过设定的超时时间看工作流是否按配置自动通过/拒绝继续执行。5. 常见问题排查与调试指南在实际操作中你可能会遇到一些问题。以下是常见问题的排查路径。问题现象可能原因检查与解决步骤人工介入节点未触发流程直接跳过1. 条件判断逻辑错误。2. 分类节点输出变量名不匹配。3. 人工介入节点未正确连接到条件分支的“是”出口。1. 检查“条件判断”节点的规则确认classification_result等于NEED_HUMAN。2. 运行工作流时查看“意图分类”节点的详细输出确认classification_result变量的值是否正确。3. 检查画布上的连线确保从条件分支到人工介入节点的连线无误。审核员在“待办”中看不到任务1. 指派配置错误。2. 当前登录用户不是被指派的成员或角色。3. 工作流未成功发布或运行。1. 检查人工介入节点“指派给”的设置确认成员或角色选择正确。2. 使用被指派的账户登录 Dify 控制台。3. 确认你测试运行的是已发布的最新版本工作流。审核员处理任务后工作流没有继续执行1. 人工介入节点下游的节点连接断开或配置错误。2. 处理任务时出现了系统错误。3. 用于接收人工输出的变量在后继节点中未被正确引用。1. 检查人工介入节点之后的连线确保连接到下一个节点如变量赋值或结束节点。2. 查看 Dify 服务端日志 (docker-compose logs dify-api)寻找错误信息。3. 确认后继节点中引用的变量名如{{final_reply}}与人工介入节点表单中定义的变量名完全一致。表单中显示的变量值为空1. 上游节点未成功将值赋给变量。2. 表单字段的“默认值”中变量引用语法错误或变量不存在。1. 检查为人工介入节点提供输入的上游节点如生成草稿的 LLM 节点确认其“回答变量”已设置且运行时有值。2. 检查表单字段的默认值如{{ai_draft_reply}}确保变量名拼写正确且该变量在到达人工节点时已存在。超时设置未生效1. 超时时间设置过长还未触发。2. 系统定时任务未正常执行。1. 将超时时间设置为一个很短的值如1分钟进行测试。2. 对于 Docker 部署检查所有容器特别是dify-api和dify-worker是否都正常运行。超时处理依赖后台工作进程。调试建议充分利用 Dify 工作流的“运行历史”功能。每次运行都会记录每个节点的输入、输出和状态。当流程不符合预期时逐节点检查运行历史中的变量值和状态是定位问题最有效的方法。6. 生产环境最佳实践与扩展思路将带有人工介入的工作流用于生产环境需要考虑更多关于可靠性、效率和管理的因素。6.1 安全与权限管理最小权限原则不要将人工介入任务指派给无关人员。利用 Dify 的“角色”功能创建“内容审核员”、“客服主管”等角色并基于角色进行指派。操作审计所有人工介入任务的处理操作谁、何时、修改了什么、意见是什么都应被记录。Dify 通常会记录这些日志确保你有权限访问和归档这些日志以满足合规要求。数据脱敏如果处理的信息包含敏感数据如手机号、身份证号考虑在展示给审核员之前在流程中先添加一个“数据脱敏”节点进行部分隐藏。6.2 性能与可用性设置合理的超时与升级策略不要只设置一个超时。可以配置首次指派给 A5 分钟未处理自动转派给 B再 10 分钟未处理则根据规则自动通过或拒绝并发送告警通知。异步与队列对于高并发场景人工介入任务会形成队列。确保你的审核团队有足够的处理能力或考虑将任务集成到外部工单系统如 Jira, 飞书审批。通知集成审核员不可能一直刷新“待办”列表。将 Dify 与企业的即时通讯工具如 Slack, 钉钉企业微信集成当有新任务时自动发送通知给审核员。6.3 扩展功能设计多级审核对于极高风险场景可以串联多个人工介入节点实现“初审-复审”的多级审核流程。动态指派基于工单内容如语言、产品线使用代码节点调用内部 API动态计算并指派给最合适的专家团队。人工反馈闭环将人工修改的最终回复final_reply与 AI 初始草稿ai_draft_reply进行对比、差异分析并将这些数据作为高质量样本用于后续的模型微调持续提升 AI 的首次回复准确率。与外部系统集成人工介入节点可以作为一个“闸口”审核通过后触发一个“HTTP 请求”节点将数据推送到外部的 CRM、工单系统或数据库实现业务流程的完全贯通。人工介入功能将 Dify 从一个纯粹的 AI 自动化工具升级为一个强大的人机协同平台。它的价值不在于替代人工而在于将人力精准、高效地部署在 AI 最不擅长或风险最高的环节从而在提升效率的同时牢牢把控质量与安全的底线。通过本文的配置实践你已经掌握了构建这种人机协同工作流的核心技能。接下来你可以尝试将其应用到内容安全过滤、金融报告生成、智能工单分类等更复杂的业务场景中探索 AI 与人类智能结合的最佳模式。