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

Dify实战-人工输入节点-AI起草人工审批的工作流怎么做

Dify 人工输入节点:AI 起草、人工审批的工作流怎么做?

基于 Dify 1.16.1 实测(2026-08)

📖摘要:工作流能全自动跑完,但审批环节必须停下来等人工——这是办公自动化绕不开的一环。Dify 1.16.1 的人工输入(human-input)节点就是为此设计的:工作流跑到节点暂停,生成一张表单(内容可实时渲染上游 AI 产出),人工填写提交,再沿「所选按钮对应的分支」继续执行。本文用真实实验验证了完整链路:表单渲染、批准/驳回分支路由、文件附件、防重校验——以及一个必须知道的坑:API 触发场景下恢复执行存在竞态。

1. 业务场景:AI 起草,人来拍板

给客户做办公自动化,最常遇到的流程是「AI 起草 + 人工审批」:

系统自动生成一份采购审批草案 → 领导审阅 → 批准或驳回 → 批准了走采购流程,驳回了退回修改。

纯自动的工作流做不到「停下来等人」——要么草案直接生效(没人把关),要么整个流程交给人工线下走(AI 白做了)。真正需要的是:流程跑到审批点暂停,等人操作,再根据人的决定走不同分支

2. 方案:human-input 节点(HITL 表单)

Dify 1.16.1 的人工输入节点就是为此设计的,底层是一套 HITL(Human In The Loop)表单系统,能力比「暂停等确认」要完整得多:

  • 表单字段:段落文本、单选下拉、单文件、多文件上传——审批意见、优先级、附件都能收
  • 动作按钮:可以配置多个按钮(如「批准」「驳回」),每个按钮对应一条分支——提交时选哪个按钮就走哪条路
  • 内容实时渲染:表单内容可以用模板引用上游节点的输出——AI 起草的草案直接渲染进表单给审批人看
  • 两级超时:节点级超时(默认 36 小时)走超时兜底分支;全局超时(默认 7 天)整个运行停止

3. 整体架构

提交 + 选批准

提交 + 选驳回

节点超时

工作流开始

LLM 起草草案

人工输入节点 - 生成表单并暂停

走批准分支

走驳回分支

走超时兜底分支

流程跑到人工输入节点 → 运行状态变 paused,生成带 token 的表单 → 审批人填写提交 → 运行沿所选按钮的边恢复执行。

4. 实测验证(14 项全跑)

实验载体:最小 workflow(LLM 起草采购草案 → 人工审批表单 → 批准/驳回/超时三出口),云端 Dify 1.16.1 实测。

核心链路全部验证通过:

验证点结果
表单内容实时渲染 LLM 草案✅ 草案正文进表单
表单定义查询(Service API 带 key)✅ 返回字段/按钮/过期时间
提交(批准/驳回)✅ 200
按钮路由(批准 → 批准分支)✅ 沿 approve 边到批准出口
提交值下游消费✅ 审批意见/优先级传到最终输出
文件附件上传 + 提交✅ file-list 字段
防重(重复提交)✅ 412 已提交
校验(缺字段)✅ 400

5. 关键配置(DSL 结构)

type:human-input# ⚠️ 连字符!写成 human_input 运行报错form_content:"请审阅:{{#lm_draft.text#}}"# 模板渲染上游输出inputs:-type:paragraph# 审批意见output_variable_name:comment-type:select# 优先级output_variable_name:priorityoption_source:{type:constant,value:[,,]}-type:file-list# 附件(多文件)output_variable_name:attachmentsallowed_file_upload_methods:[local_file,remote_url]user_actions:# 按钮 = 分支-{id:approve,title:批准,button_style:primary}-{id:reject,title:驳回,button_style:default}delivery_methods:# ⚠️ 必配,否则无收件人无法提交-{type:webapp,enabled:true,config:{}}timeout:36# 节点级超时(36 小时)timeout_unit:hour

提交接口:POST /v1/form/human_input/{form_token},body 带user(必填)、inputs(按字段名)、action(按钮 id)。

6. 实测坑(7 条,前三条最关键)

#说明
1type 连字符坑枚举值是human-input,写成human_input报「No class mapping found」
2恢复执行竞态提交后恢复执行有概率失败(实测 3 次 2 成 1 败),报错「Client response stream closed」——API 一次性 HTTP 触发场景恢复不可靠;画布/长连接场景大概率正常
3提交端点与收件人类型隔离API 触发生成的表单,提交走 Service API 端点(带 key);console 触发生成的表单,提交走 Console 端点——混用 404
4file-list 字段必填没配必填也要提交 attachments
5delivery_methods 必配不配没有收件人,表单无法提交
6streaming 暂停后服务端主动关流别指望保持连接续流
7blocking vs streaming 暂停语义不同blocking 直接返回完整表单定义;streaming 走事件流

7. 总结

人工输入节点把「AI 起草 + 人工审批」做成了平台原生能力:表单、按钮分支、附件、超时兜底、防重全都有,实测核心链路可用。但坑 2 必须正视:API 一次性触发场景下恢复执行存在竞态,交付时要优先 UI 场景(画布调试/WebApp 分享页),API 触发场景要实测后再承诺。

适合的场景:审批流(批准/驳回多分支)、人工补料(表单收集字段)、带附件审批。不适合:完全无人值守的流程——它本质是「人机协作」节点,不是自动化加速器。

💬 你在办公自动化里用过人工输入节点吗?「AI 起草 + 人工审批」这个闭环对你的场景够用吗?评论区聊聊。


本文为 Dify 功能实测记录,基于 2026-08 云端 1.16.1 环境,实验数据全部来自真实运行结果。
如果对你有帮助,点赞、收藏、关注,后续会继续实测 Dify 的其他隐藏能力。

http://www.cnnetsun.cn/news/4227230.html

相关文章:

  • 【大模型RAG生成式AI开发实战】《大模型RAG生成式AI开发实战》_114.[第12章 RAG评估体系] 生成评估:BLEU、ROUGE和BERTScore
  • 第10篇-通道架构与Telegram配置
  • Winform/Sunny.UI的DataGridView数据展示、uiPagination分页
  • 转:怎样招到优秀的核心人才
  • 【中国方言题库|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致
  • Raid卡命名及代表含义
  • C++进阶知识5.0
  • 深圳EMC现场测试辐射传导测试
  • scrapy爬取动态页面的正确姿势
  • 基于springboot2+vue2的租房管理系统
  • 基于SpringBoot的大学生竞赛管理系统
  • 交叉效率 DEA 激进型模型计算准确性验证 —— 基于 DEA Performance 的数值验算
  • Codex 多文件协同修改,小心处理依赖冲突与连锁反应
  • 《易学・贲䷕|道影子新解 022》
  • 食品加工技术课程概述
  • 四子棋智能体构建与在线对抗决策应用
  • 飞船乘客状态预测与金融风控建模启发
  • AI Agent 面试题 340:工具调用的成本计量和预算控制机制
  • 董宇辉的尽头是山姆?——个人IP如何转化为零售品牌
  • MyBatis 的注解式开发
  • 【TDengine】 TDengine 的内存管理模型是怎样的?缓存机制如何工作?
  • 【TDengine】TDengine 使用了哪些压缩算法?压缩率通常能达到多少?
  • 交叉编译零门槛:graphics.gd无需SDK构建Android、iOS与Web版Godot游戏
  • Video2X 完整上手:三步把模糊老视频放大到 4K、30fps 变 60fps
  • ArcGIS零起点实战教程|空间规划师必学GIS技能课(视频+数据包+工具集)
  • BlobRunner x64实现深度剖析:内联汇编为何失效,挂起线程如何救场
  • 记录C++ 11
  • 57-基于深度学习的农作物虫害检测识别系统(yolo26、yolo12、yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)2027毕业版
  • OpenCV ncnn 人脸识别(一)
  • 如何部署AI模型到边缘端:keras_cv_attention_models TFLite转换完整指南(含3大常见坑)