File size: 4,410 Bytes
f39c319 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # Dify 落地配置指南 (Dify Config Guide)
本文档为隐私合规协同场景在 Dify 中的落地提供确切配置方案,特别针对核心交互阶段(B/C/E/F阶段,即智能体调用与人工审核流转节点)的 HTTP 超时、重试机制和 Human Input 分支设置提供详细指导。
## 一、HTTP 节点配置方案 (针对 B/C/E 等调用外部智能体阶段)
在 Dify 的 Workflow 中,调用本地/服务端智能体(如 AGENT-02 协议重构、AGENT-03 合规校验、AGENT-04 法务审核包生成)主要通过 **HTTP Request** 节点实现。
### 1. HTTP Timeout (超时设置)
智能体推理特别是协议重构和合规校验通常需要较长的 LLM 处理时间,默认的 HTTP 超时时间往往不够。
* **连接超时 (Connect Timeout)**: 建议设置为 `10s` (本地或内网服务响应极快)。
* **读取超时 (Read Timeout)**: 建议设置为 `120s - 180s` (根据大模型并发生成速度决定,协议重构阶段建议至少 `180s`)。
* **写入超时 (Write Timeout)**: 建议设置为 `30s`。
### 2. 重试机制 (Retry)
为了应对网络抖动或 LLM 偶发的推理失败(如返回 5001 错误码),需要配置合理的重试策略。
* **最大重试次数 (Max Retries)**: 设置为 `1` 次到 `2` 次。不允许无限重试,以防大量消耗 Token。
* **重试间隔 (Retry Interval)**: 设置为 `2000ms` (2秒) 或以上。
* **重试条件 (Retry Conditions)**:
* HTTP 状态码为 `500`, `502`, `503`, `504` 时触发重试。
* **注意**: 如果状态码为 `400` (如 `4001` 缺材料、`4002` 格式错误),**绝对不触发重试**,应直接流转至异常处理分支。
* **Header 透传**: 在 HTTP Request 节点的 Header 中增加 `x-retry-count` 参数(如果在 Dify 较新版本中支持表达式,可将重试次数变量传入,或者由服务端自行记录重试状态)。
## 二、Human Input 与分支路由设置 (针对 F 阶段人工法务确认)
F 阶段的核心是拦截 AI 的生成结果,交由人类(法务)进行最后拍板,并根据决策走向不同的后续流程。
### 1. Human Input 节点配置
* **节点名称**: `人工法务确认 (Legal Human Review)`
* **展示信息 (Review Information)**:
* 绑定 AGENT-04 吐出的 `formatted_review_material`(法务审核包格式化文本)。
* 展示 `risk_levels` 和 `pending_items`。
* **输入表单配置 (Input Form)**:
* **决策字段 (Decision)**: 单选下拉框 (Select)
* 选项 1: `approve` (审核通过)
* 选项 2: `reject` (退回修改)
* 选项 3: `need_more_material` (补充材料)
* **审批意见 (Comments)**: 文本域 (Textarea),非必填(但在退回或补充材料时建议法务填写具体原因)。
### 2. 条件分支 (If/Else 节点)
紧接在 Human Input 节点之后,使用条件节点 (Condition) 对流程进行分流:
* **分支 A (通过 - Approve)**:
* 条件: `Human_Input.Decision` == `approve`
* 动作: 调用 HTTP 节点,将当前 draft_id 及通过状态推送到“待发布中心”入库。
* **分支 B (退回 - Reject)**:
* 条件: `Human_Input.Decision` == `reject`
* 动作: 通过 Template 节点将 `Human_Input.Comments` 格式化为修改清单,然后循环退回至 **AGENT-02 (协议重构)** 节点,并在上下文中带上法务的修改指导意见。
* **分支 C (补材料 - Need More Material)**:
* 条件: `Human_Input.Decision` == `need_more_material`
* 动作: 结束当前自动化主流程,输出缺漏材料清单与法务意见,提示业务人员重新补充 PRD / 权限 / SDK 材料后再次发起申请。
## 三、全局系统性配置建议
1. **统一的错误捕获**: 在 Dify 的 HTTP 节点后,应优先检查输出的 JSON 中是否存在 `error_code` 或 HTTP Status 是否异常。如果失败,走统一的“任务失败”终点,避免静默失败。
2. **日志不落盘敏感数据**: Dify 端保存的 Workflow 日志可能会保留变量。请确保传递给 Dify 的 `materials` 字段(如果通过 Dify 前端填入)只在内存中流转,或遵循服务端已实施的日志脱敏规范(即仅落库 case_id 等 metadata)。
3. **幂等性保障**: 每次 Dify 触发请求时,务必在 Payload 中带上唯一的 `case_id`,以触发服务端的幂等控制,防止在网络超时后 Dify 发起重试导致产生重复脏数据。 |