当前位置: 首页 > news >正文

Dify 1.15 人工介入功能详解:在AI工作流中嵌入审批与协同

🚀 30+款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度

如果你正在用 Dify 构建一个智能客服或内容审核工作流,是否遇到过这样的困境:AI 的回复大部分时候都很好,但偶尔会“一本正经地胡说八道”,或者在一些需要严格合规、涉及关键决策的环节,你不敢完全放手让它自动执行?你需要的可能不是一个更聪明的模型,而是一个能让人类在关键时刻“踩刹车”或“微调方向”的机制。

这就是 Dify 1.15 版本中“人工介入”(Human-in-the-Loop, HITL)功能要解决的核心问题。它不是一个简单的“审核”开关,而是一套将人类智慧无缝嵌入到自动化 AI 工作流中的系统性工程能力。过去,我们要么全自动,要么全手动,中间缺乏一个优雅的、可编程的协作层。Dify 1.15 通过引入审批节点人工触发节点,正式填补了这一空白,让 AI 应用从“玩具”走向“生产工具”的关键一步得以实现。

本文将深入解析 Dify 1.15 的“人工介入”功能。我不会只告诉你按钮在哪里,而是会带你理解其背后的设计哲学、适用的核心场景,并通过一个从零构建的内容发布审批工作流实战案例,手把手展示如何配置审批流程、处理人工反馈,并最终将审批结果集成回自动化流程。你会发现,这不仅仅是多了一个节点,而是彻底改变了你设计和思考 AI 工作流的方式。

1. 这篇文章真正要解决的问题

在 AI 应用开发中,我们常常陷入一个两难境地:追求全自动化带来的效率,还是为了保证质量与安全而保留人工干预?Dify 1.15 之前的版本,工作流一旦启动便如离弦之箭,无法中途干预。这在很多真实业务场景中是行不通的。

想象以下几个场景:

  1. 智能客服:AI 生成的赔偿方案或重要政策解释,在发送给用户前,需要主管复核。
  2. 内容创作:AI 批量生成的营销文案或新闻稿,在发布前需要编辑进行润色和定稿。
  3. 数据查询与分析:AI 生成的复杂 SQL 语句或数据分析报告,在执行或交付前需要资深工程师确认其正确性。
  4. 审批流程:任何涉及费用、权限、合同等关键业务流程,AI 可以预处理,但最终决定权必须在人。

如果没有“人工介入”,上述场景的解决方案往往很笨重:要么将整个工作流拆成两段,中间通过外部系统(如邮件、OA)手动传递数据;要么干脆放弃自动化,回归全人工。这两种方式都破坏了工作流的连贯性和可维护性。

因此,本文要解决的核心问题是:如何在 Dify 构建的自动化 AI 工作流中,优雅、灵活地插入必须由人类完成的决策或修正环节,并确保流程数据不中断、状态可追踪?我们将通过 Dify 1.15 的新功能,给出一个标准化的答案。这篇文章适合所有正在或计划使用 Dify 构建严肃生产级应用的开发者、产品经理和业务负责人。

2. Dify 与“人工介入”核心概念解析

在深入实操前,有必要厘清几个关键概念,这能帮助你更好地理解 Dify 的设计思路。

2.1 Dify 是什么?再认识其定位

根据网络资料,Dify 被定义为一个“领先的智能体工作流构建器”。它集成了智能体工作流、RAG 管道、多种集成和可观测性能力。通俗地说,Dify 是一个低代码/无代码的 AI 应用开发平台,让你通过拖拽方式,将大语言模型、知识库、代码解释器、各种工具 API 连接起来,构建出复杂的 AI 应用。

它的核心价值在于“将 AI 能力工程化”。你可以像搭积木一样构建流程,而无需关心底层的模型调用、上下文管理、状态维护等复杂工程问题。Dify 负责提供稳定、可扩展的后端服务。

2.2 什么是“人工介入”?

“人工介入”是 AI 工程中的一个重要范式,指在自动化系统中,特意设计一些环节,允许人类操作员提供输入、做出决策或纠正错误。其目的不是取代自动化,而是增强它,确保系统的可靠性、安全性和合规性。

在 Dify 的语境下,“人工介入”特指在工作流执行过程中,主动暂停自动化执行,将特定数据(如 AI 生成的文本、建议的方案)发送给指定的人工审批者,等待其做出“通过”、“拒绝”或“修改后通过”的决定后,再决定工作流后续分支走向的能力。

2.3 Dify 1.15 实现人工介入的两大核心节点

Dify 1.15 主要通过两个节点来实现这一能力:

  1. 审批节点:这是最核心的节点。工作流执行到此节点时会暂停,并向预设的审批人(可以是具体的用户邮箱,或通过变量动态指定)发送审批通知。审批人可以在 Dify 的 Web 界面或集成到第三方系统(如 Slack、飞书)的消息中,查看待审批内容,并做出决定。审批结果(通过/拒绝)会作为变量传递给后续节点。
  2. 人工触发节点:这个节点用于启动一个需要人工输入的工作流。它更像是工作流的“门卫”,只有人工点击触发后,工作流才会开始执行。这适用于那些完全由人工事件驱动的场景,例如“用户提交表单后开始处理”。

本文将重点讲解更常用、也更复杂的“审批节点”,因为它代表了在自动化流程中嵌入人工决策的典型模式。

2.4 为什么这很重要?从“开环”到“闭环”的演进

在没有人工介入功能时,Dify 工作流是一个“开环”系统:输入 → 处理 → 输出,过程不可中断。加入审批节点后,系统变成了一个“闭环”:系统可以提出方案,人类进行评估和修正,系统再基于反馈继续执行或调整。这带来了几个根本性改变:

  • 风险可控:在关键点设置检查站,防止 AI 幻觉或错误决策造成损失。
  • 责任明晰:所有经过人工审批的环节都有记录,符合审计要求。
  • 人机协同:人类负责需要创造力、伦理判断和深层领域知识的部分,AI 负责重复性、高计算量的部分,实现效率与质量的最优解。

理解这些概念后,我们就可以开始动手搭建一个包含人工介入的完整工作流了。

3. 环境准备与前置条件

在开始构建工作流之前,请确保你的环境已就绪。

3.1 Dify 环境要求

  • Dify 版本:必须为1.15.0或更高版本。早期版本不支持审批节点。你可以通过 Dify 管理后台的“系统状态”或部署命令查看当前版本。
  • 部署方式:无论是使用 Docker Compose、Kubernetes 还是直接源码部署,只要版本达标即可。本文示例基于 Docker Compose 部署的 Dify。
  • 访问权限:你需要一个具有工作流创建和编辑权限的 Dify 账户。

3.2 模型配置准备

由于工作流中会用到 LLM 生成内容,你需要确保 Dify 中已配置好至少一个可用的语言模型。

  • 推荐:OpenAI GPT 系列、 Anthropic Claude 系列或国内可访问的同等性能模型。
  • 备用:通过 Ollama 部署的本地模型(如 Llama 3、Qwen 等)。确保模型在 Dify 的“模型供应商”中已正确配置且状态可用。

3.3 第三方工具集成(可选但推荐)

为了让审批通知更及时,建议配置一个消息推送工具。Dify 支持多种 Webhook 和消息平台集成。

  • 常用选择:配置 Slack、飞书、钉钉或企业微信的“传入 Webhook”。
  • 作用:当审批任务产生时,Dify 可以自动发送通知到这些协作工具,审批人无需一直刷新 Dify 页面。

3.4 明确我们的实战目标

我们将构建一个“智能内容创作与发布审批”工作流。其业务逻辑如下:

  1. 用户输入一个文章主题。
  2. AI 根据主题生成一篇草稿。
  3. 工作流自动暂停,将草稿发送给“编辑”角色的人工审批者。
  4. 审批者在 Dify 界面(或通过集成的 Slack)审阅草稿,可以选择:
    • 通过:工作流继续,将文章发布到预设的频道(模拟)。
    • 拒绝:工作流结束,并通知申请人文章被拒。
    • 修改后通过:审批者提供修改意见,工作流将意见和原草稿一起交给 AI 进行修订,修订后再走一次审批流程(或直接发布)。
  5. 整个过程的每个状态(待审批、已通过、已拒绝、修订中)都应有日志记录。

接下来,我们将分步实现这个工作流。

4. 工作流核心设计与节点拆解

让我们在 Dify 的工作流编辑器中,一步步搭建这个系统。

4.1 创建工作流并设置变量

首先,创建一个新的空白工作流。我们需要定义几个关键变量,用于在不同节点间传递数据:

  • article_topic:字符串类型,用户输入的文章主题。
  • article_draft:字符串类型,AI 生成的草稿。
  • approval_result:字符串类型,存储审批结果(approved,rejected,revised)。
  • editor_feedback:字符串类型,存储审批者提供的修改意见。
  • final_article:字符串类型,存储最终定稿的文章。

你可以在工作流编辑器的“变量”面板中预先定义它们。

4.2 节点1:开始与主题输入

使用“对话开场白”节点或“文本输入”节点作为起点,让用户提供article_topic。这是一个简单的交互节点。

4.3 节点2:LLM 生成草稿

添加一个“LLM”节点。

  • 连接:将其连接到“开始”节点。
  • 配置
    • 模型:选择你配置好的一个模型(例如 GPT-4)。
    • 系统提示词:编写一个提示词,指导 AI 扮演专业撰稿人。
    你是一位专业的科技专栏编辑。请根据用户提供的主题,撰写一篇结构清晰、观点明确、语言流畅的短文草稿(约500字)。草稿应包含引人入胜的开头、扎实的论据和简洁的结尾。
    • 用户输入:引用变量{{article_topic}}
    • 输出处理:将 LLM 的回复(即生成的草稿)赋值给变量article_draft

至此,自动化部分完成了内容创作。

4.4 节点3:关键一步 - 插入“审批”节点

这是本文的核心。从节点库中找到并添加“审批”节点。

  • 连接:将其连接到“LLM 生成草稿”节点。
  • 配置:这个节点的配置项较多,需要仔细设置。
    • 审批人:这是最重要的设置。有两种方式:
      1. 指定邮箱:直接输入审批人的邮箱地址,如editor@yourcompany.com。该邮箱必须对应一个有效的 Dify 用户账户。
      2. 变量指定:更灵活的方式。例如,你可以创建一个“编辑团队”列表,通过上游节点动态计算本轮审批人,并将其邮箱赋值给一个变量(如assigned_editor),然后在此处引用{{assigned_editor}}
    • 审批标题:定义审批任务的标题,如“待审批文章草稿:{{article_topic}}”。使用变量使其更清晰。
    • 审批内容:这里需要定义发送给审批人查看的内容。通常我们会将 AI 生成的草稿和一些上下文信息格式化后放入。
      以下是由 AI 根据主题“{{article_topic}}”生成的文章草稿,请审阅: --- {{article_draft}} --- 请决定:通过、拒绝,或提供修改意见后通过。
    • 审批表单(高级):你可以为审批人提供结构化的输入字段。例如,添加一个“多行文本”字段,变量名设为editor_feedback,标签为“修改意见”。这样审批者就可以在做出“修改后通过”决定时,直接填写意见。
    • 超时设置:可以设置审批等待的超时时间(如24小时)。超时后,可以配置默认行为(如视为拒绝或通过)。

配置完成后,这个节点就像一个闸门。工作流执行到这里会暂停,并在 Dify 后台生成一个待办的审批任务。

4.5 节点4:根据审批结果进行分支

添加一个“条件判断”节点(If/Else)。

  • 连接:将其连接到“审批”节点。
  • 配置:我们需要根据审批结果变量approval_result的值来决定流程走向。
    • 条件1approval_result等于approved
      • 连接后续的“发布文章”节点。
    • 条件2approval_result等于rejected
      • 连接后续的“通知申请人被拒”节点。
    • 条件3approval_result等于revised(或你自定义的其他值)
      • 连接后续的“根据意见修订文章”节点。
    • 默认分支:可以处理超时或其他未知状态。

4.6 节点5-7:处理不同分支

现在我们来构建各个分支的细节。

分支A:审批通过 -> 发布文章

  • 添加一个“代码”节点或“HTTP 请求”节点来模拟发布动作。
  • 示例(代码节点 - Python)
    # 这是一个模拟发布的函数 # 在实际应用中,这里可以调用 WordPress API、内容管理系统 API 等。 def publish_article(article): # 模拟发布逻辑 print(f"文章已发布到官网频道。内容预览:{article[:100]}...") # 你可以在这里返回发布后的文章ID或URL return {"status": "published", "article_id": "sim_123456"} # 调用函数,使用上游传来的 final_article 或 article_draft result = publish_article(inputs.get('final_article', inputs.get('article_draft'))) # 将结果输出到变量 outputs['publish_result'] = result
  • 最后可以连接一个“文本回复”节点,通知用户文章已成功发布。

分支B:审批拒绝 -> 通知申请人

  • 添加一个“文本回复”节点。
  • 内容可以配置为:很抱歉,您关于“{{article_topic}}”的文章草稿未通过编辑审核。请修改主题或重新撰写。
  • 此分支即为工作流终点。

分支C:修改后通过 -> 修订并循环这是最复杂也最能体现人机协同价值的路径。

  1. 添加一个新的“LLM”节点,用于修订。
    • 系统提示词
      你是一位乐于接受反馈的撰稿人。以下是一篇草稿和编辑给出的修改意见。请根据意见,对草稿进行修改和优化,保留原意和优点,同时解决编辑指出的问题。直接输出修改后的全文。
    • 用户输入
      原始草稿: {{article_draft}} 编辑意见: {{editor_feedback}} 请输出修改后的文章:
    • 输出处理:将修订后的文章赋值给变量article_draft(覆盖原草稿)或新的revised_draft
  2. 决策点:修订后,是直接发布,还是再次送审?
    • 方案一(简化):修订后直接跳转到“发布文章”节点。这适用于对编辑意见充分信任的场景。
    • 方案二(严格):修订后,再次连接到一个新的“审批”节点,让编辑进行复审。这可以形成多轮人机交互闭环。注意避免无限循环,可设置最大修订次数。

4.7 节点8:结束与日志

无论哪个分支,最终都应汇聚到明确的结束状态。你可以使用“结束”节点。建议在关键节点(如生成草稿后、审批动作发生后、发布完成后)添加“日志”节点,将重要变量和状态记录到工作流执行历史中,便于审计和调试。

至此,我们完成了整个工作流的逻辑设计。它包含了自动生成、人工审批、条件分支和循环修订等核心模式。

5. 完整工作流配置示例与代码解读

让我们将上述设计转化为具体的 Dify 工作流配置。由于 Dify 工作流主要通过图形化界面配置,这里我将用 YAML 格式描述其核心结构,并辅以关键节点的配置代码片段。你可以根据此结构在 Dify 编辑器中复现。

5.1 工作流整体结构 YAML 描述

Workflow: Content_Approval_Demo Variables: - name: article_topic type: string required: true - name: article_draft type: string - name: approval_result type: string - name: editor_feedback type: string - name: final_article type: string Nodes: - id: start type: conversation_start outputs: - variable: article_topic - id: llm_generate type: llm model: gpt-4 prompt: system: “你是一位专业的科技专栏编辑...” user: “请撰写关于 {{article_topic}} 的文章...” outputs: - variable: article_draft - id: human_approval type: approval assign_to: editor@company.com # 或 {{assigned_editor}} title: “待审批文章:{{article_topic}}” content: “草稿:\n{{article_draft}}\n\n请审批。” form: - field: editor_feedback type: textarea label: “修改意见(如需)” outputs: - variable: approval_result - variable: editor_feedback - id: condition type: if-else conditions: - if: “{{approval_result}} == ‘approved‘” goto: publish - if: “{{approval_result}} == ‘rejected‘” goto: notify_reject - if: “{{approval_result}} == ‘revised‘” goto: revise default: notify_reject - id: revise type: llm model: gpt-4 prompt: system: “你是一位乐于接受反馈的撰稿人...” user: “原始草稿:{{article_draft}}\n编辑意见:{{editor_feedback}}\n请修改:” outputs: - variable: article_draft # 覆盖原草稿 goto: human_approval # 修订后返回审批节点复审(注意:实际中需加循环限制) - id: publish type: code language: python3 code: | # 发布逻辑模拟 import json def publish(title, content): # 模拟API调用 return {“status“: “success“, “id“: “pub_001“} result = publish(variables[“article_topic“], variables.get(“final_article“, variables[“article_draft“])) outputs[“publish_result“] = json.dumps(result) outputs: - variable: publish_result goto: notify_success - id: notify_success type: answer answer: “文章 ‘{{article_topic}}‘ 已成功发布!发布ID: {{publish_result.id}}” - id: notify_reject type: answer answer: “文章 ‘{{article_topic}}‘ 未通过审核。意见:{{editor_feedback}}”

注:以上为逻辑描述性 YAML,并非 Dify 直接导入的格式,但清晰展示了节点类型、连接关系和变量流转。

5.2 关键节点配置详解:审批节点

在 Dify 图形界面中,“审批”节点的配置表单包含以下关键字段:

  • 审批人 (Assignees):输入邮箱。支持多个,以逗号分隔。所有被指定的人都会收到通知,但只需其中一人操作即可。
  • 标题 (Title):支持变量插值,使任务列表更清晰。
  • 描述 (Description):详细的审批说明,可以使用丰富的 Markdown 格式,并嵌入多个变量。
  • 表单字段 (Form Fields):这是实现“修改后通过”的关键。你可以添加“单选框”、“下拉框”、“多行文本”等字段。例如:
    • 字段1:action(单选框),选项:通过拒绝需修改
    • 字段2:feedback(多行文本),仅当action需修改时显示(Dify 支持条件显示逻辑)。审批人填写的意见会自动存入变量。

5.3 关键节点配置详解:代码节点(发布模拟)

在“发布文章”分支,我们使用“代码”节点来执行自定义逻辑。以下是更完整的 Python 示例,包含错误处理:

# Dify 代码节点 - Python 示例:发布文章到模拟的 CMS import requests import json import traceback def main(inputs: dict, context: dict) -> dict: """ 将文章发布到内容管理系统。 输入: inputs 字典,包含 ‘article_topic‘, ‘article_draft‘ 等变量。 输出: 包含发布结果的字典。 """ topic = inputs.get(‘article_topic‘, ‘Unknown Topic‘) content = inputs.get(‘final_article‘) or inputs.get(‘article_draft‘, ‘‘) if not content: return {“error“: “发布内容为空“} # 1. 准备发布数据 payload = { “title“: topic, “content“: content, “status“: “publish“, # 或者 ‘draft‘ 根据审批结果定 “author“: “AI-Assisted Writer“ } # 2. 模拟 API 调用 (实际使用时替换为真实的 CMS API URL 和 Token) # api_url = “https://your-cms.com/wp-json/wp/v2/posts“ # headers = {“Authorization“: “Bearer YOUR_TOKEN“} # response = requests.post(api_url, json=payload, headers=headers) # 3. 模拟成功响应 # 实际开发中,请根据 response.status_code 和 response.json() 处理 print(f“[模拟发布] 文章 ‘{topic}‘ 发布请求已发送。内容长度:{len(content)}“) # 模拟响应 simulated_response = { “success“: True, “message“: “Article published successfully“, “article_id“: “sim_” + str(hash(topic))[:8], “url“: f“https://example.com/articles/sim_{hash(topic)[:8]}“ } # 4. 返回结果,供后续节点使用 outputs = { “publish_status“: “success“ if simulated_response[“success“] else “failed“, “publish_details“: json.dumps(simulated_response), “article_url“: simulated_response.get(“url“, ““) } # 你也可以将结果记录到工作流日志 context[“log“](f“发布完成,状态:{outputs[‘publish_status‘]}“) return outputs # 在 Dify 中,代码节点的返回值会自动绑定到输出变量。

这个代码节点展示了如何将工作流中的数据与外部系统(如内容管理系统)进行集成,是工作流价值落地的重要一环。

6. 运行、测试与效果验证

配置完成后,让我们来测试这个工作流。

6.1 启动测试运行

  1. 在 Dify 工作流编辑器的右上角,点击“发布”按钮,将工作流发布为一个应用。
  2. 进入该应用的聊天窗口或使用其 API 端点。
  3. 输入一个测试主题,例如:“人工智能在医疗诊断中的最新进展”
  4. 点击发送。

6.2 观察自动化阶段

工作流会首先运行“LLM 生成草稿”节点,你会在聊天窗口看到 AI 正在思考并生成一篇短文。生成完毕后,流程会暂停。聊天界面可能会显示“等待审批”或类似的提示。

6.3 模拟人工审批

  1. 使用你指定的审批人邮箱(如editor@company.com)登录 Dify 的另一个浏览器或标签页。
  2. 进入“工作区”“待办”区域(具体位置取决于 Dify 的界面设计,通常在顶部导航栏或侧边栏)。
  3. 你应该能看到一个待审批任务,标题为“待审批文章:人工智能在医疗诊断中的最新进展”。
  4. 点击该任务,查看完整的草稿内容。
  5. 进行审批操作:
    • 测试通过:直接点击“通过”。然后返回原聊天窗口,观察工作流是否继续,并最终收到发布成功的通知。
    • 测试拒绝:点击“拒绝”,并可选填原因。观察聊天窗口是否收到被拒通知。
    • 测试修改后通过:选择“需修改”或类似选项,在“修改意见”框中输入具体意见,如“请在第二部分增加一个关于伦理挑战的段落。”然后提交。观察工作流是否跳转到修订节点,生成新草稿后,是直接发布还是产生了新的审批任务(取决于你的循环设计)。

6.4 验证关键结果

  • 流程正确性:不同审批选择是否触发了正确的分支路径?
  • 数据传递:审批意见 (editor_feedback) 是否正确地传递给了修订 LLM 节点?
  • 状态持久化:刷新页面后,工作流是否仍处于暂停状态?审批任务是否还在?
  • 通知机制(如果配置了):检查 Slack/飞书等渠道是否收到了审批通知。

6.5 通过 API 集成测试

对于生产环境,工作流通常通过 API 调用。你可以在应用的“API 访问”页面找到调用方式。

# 示例:使用 curl 调用工作流 API curl -X POST \ ‘https://your-dify-domain/v1/workflows/run‘ \ -H ‘Authorization: Bearer your-api-key‘ \ -H ‘Content-Type: application/json‘ \ -d ‘{ “inputs“: { “article_topic“: “API 测试主题“ }, “response_mode“: “blocking“, # 或 ‘streaming‘ “user“: “test-user-001“ }‘

调用后,你需要通过 Dify 的后台管理界面或专门的审批 API 来查询和处理审批任务。

7. 常见问题与排查思路

在实际使用“人工介入”功能时,你可能会遇到以下问题:

问题现象可能原因排查方式解决方案
工作流在审批节点无限期等待,无任何通知。1. 审批人邮箱未注册 Dify 账户。
2. 审批人邮箱填写错误。
3. 消息推送渠道(如 Slack Webhook)未配置或配置错误。
1. 检查审批节点配置的邮箱地址。
2. 登录该邮箱账户,查看 Dify “待办”列表。
3. 检查 Dify 后台的“外部集成”设置,测试 Webhook。
1. 确保审批人是有效的 Dify 用户。
2. 使用变量动态指定审批人时,确保上游节点正确输出了邮箱变量。
3. 正确配置并启用通知渠道。
审批人操作后,工作流未继续执行。1. 工作流执行实例因超时等原因已关闭。
2. 条件判断节点对approval_result变量的值判断有误。
3. 网络或服务异常导致回调失败。
1. 在工作流“日志与历史”中查看该次执行的状态和详情。
2. 检查条件节点的逻辑条件是否与审批节点输出的值完全匹配(注意大小写和空格)。
3. 查看 Dify 服务日志。
1. 适当增加工作流执行超时时间。
2. 在条件判断中使用trim()函数处理变量,或确保审批表单输出的值是预期的。
3. 重启 Dify 相关服务。
审批表单中的修改意见未传递给后续节点。审批表单字段的“变量名”设置错误,或后续节点引用变量名错误。1. 在审批节点的配置中,确认表单字段的“变量名”。
2. 在后续的 LLM 修订节点中,检查提示词里引用的变量名是否一致。
1. 使用简单、明确的变量名,如feedback
2. 在工作流调试模式下,查看每个节点的输入/输出变量,确认数据流向。
多轮修订循环导致无限循环。修订后重新送审的逻辑缺少终止条件。检查工作流设计,修订后是否无条件跳回审批节点。在循环路径上增加一个“计数器”变量(如revision_count),每次修订后加1,并在条件判断中检查是否超过最大次数(如3次),超过则跳转到终止或人工处理节点。
通过 API 触发的工作流,审批人如何知晓?默认仅依赖 Dify 站内通知,审批人可能不登录。API 调用后,查询返回的task_idworkflow_run_id1.最佳实践:配置强通知(Slack/飞书等),将审批链接直接发到协作群。
2. 通过 Dify API 定期轮询任务状态,并集成到自己的通知系统。

8. 最佳实践与工程建议

将“人工介入”可靠地用于生产环境,需要考虑以下几点:

  1. 审批人管理策略

    • 避免硬编码邮箱:尽量不要在流程中直接写死审批人邮箱。可以通过上游节点根据业务规则(如文章类型、部门)从数据库或配置中心动态查询并赋值。
    • 审批人组与后备:支持设置多个审批人(会签或或签),并指定后备审批人,防止因单人缺席导致流程阻塞。
    • 权限隔离:确保审批人只能看到和操作其权限范围内的任务。
  2. 超时与异常处理

    • 设置合理超时:根据业务紧急程度设置审批超时(如2小时、24小时)。超时后应自动执行预设动作(如升级给上级、自动拒绝或通过)。
    • 设计补偿流程:对于因系统故障导致审批状态丢失的情况,应有后台巡检任务或手动干预界面,能重新驱动停滞的工作流。
  3. 安全与审计

    • 完整日志:确保工作流执行日志、审批操作日志(谁、何时、做了什么决定、修改意见是什么)被完整记录,并可供查询。
    • 数据不落地:如果审批内容敏感,考虑在传输和展示时进行加密或脱敏。Dify 本身提供企业级安全特性,但部署架构也需符合公司规范。
  4. 用户体验优化

    • 审批界面友好:在审批节点的“描述”字段中,使用 Markdown 将 AI 输出、原始输入、上下文信息清晰地格式化展示,帮助审批人快速决策。
    • 提供默认选项:在审批表单中,为“通过”和“拒绝”提供常见的预设意见选项(如“内容合规,准予发布”、“事实有误,请核实”),减少审批人输入负担。
    • 移动端适配:确保审批通知链接在手机端也能方便地打开和操作。
  5. 与现有系统集成

    • 深度集成:不要将 Dify 工作流视为孤岛。审批完成后,触发的结果(如发布文章、创建工单、更新 CRM)应通过 HTTP 请求或插件,无缝对接到你的 OA、CRM、CMS 等核心业务系统。
    • 状态同步:考虑将重要的审批最终状态同步回你的主业务数据库,保持数据一致性。

Dify 1.15 的“人工介入”功能,本质上是为 AI 自动化流程装上了可调节的“方向盘”和“刹车”。它没有削弱自动化的力量,而是通过引入人类的判断力,让自动化变得更加可信、可靠和合规。从简单的文本审核到复杂的多步骤业务审批,这个功能极大地拓展了 Dify 在真实企业场景中的应用边界。

🚀 30+款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度

http://www.gsyq.cn/news/1630576.html

相关文章:

  • Inpaint-Web:基于WebGPU与WASM的本地AI图像修复与超分工具
  • FrodoKEM硬件加速架构设计与优化策略
  • 2026年企业智能化转型:大模型与智能体培训实战指南
  • Agentic AI企业落地实战:从核心能力到实施路径的硬核指南
  • 本地AI创意工作台MiniMax Hub环境配置与核心工作流实战指南
  • AI驱动外贸客户开发:从线索挖掘到深度分析的实战指南
  • AI绘画工作流革新:infinite-canvas一站式可视化创作平台部署与应用指南
  • PSO优化LSSVM参数:提升回归预测性能的实战指南
  • 机器学习可解释性:从LIME到SHAP的实践指南
  • 企业AI应用:从单点突破到体系化落地的实践指南
  • Faiss向量检索性能调优实战与Easy-VectorDB工具链解析
  • AMD Ryzen处理器深度调试完全指南:5分钟掌握SMU Debug Tool核心功能
  • Gemini 2.5 Computer Use构建求职Agent:自动化海投与智能简历匹配
  • 技术深度解析:text2vec-base-chinese中文句子嵌入模型架构设计与企业级应用
  • PCF8591与PIC18F2685的信号转换系统设计与优化
  • 数据分析师必备Python工具链实战指南
  • 本地部署 GLM-5.1 构建可执行的编程智能体
  • AI剪辑如何重构视频创作流程:从素材整理到叙事表达
  • AI工程化落地:LangChain、LangGraph等六大框架选型实战指南
  • 无人机飞行事故分析与安全预防实战指南
  • 从零搭建本地渗透测试环境:Kali Linux、Metasploit与靶机部署实战指南
  • 遗传算法工程实战:破解选择压力、精英保留与自适应参数
  • 工业级传感器与执行器控制系统核心组件解析
  • STM32F334R8驱动WS2812B LED灯带的完整指南
  • Potrace深度解析:从像素到贝塞尔曲线的智能转换实战指南
  • 如何快速上手智能缠论分析:ChanlunX股票技术分析终极指南
  • CTFAK 2.0技术架构深度解析:模块化设计与性能优化策略
  • STM32L031与AD5593R的嵌入式信号处理系统设计
  • 如何在3分钟内免费获取Sketchfab上的3D模型资源
  • 深度学习模型优化技术:剪枝、量化与蒸馏实战指南