Delete 方案.md
Browse files
方案.md
DELETED
|
@@ -1,1124 +0,0 @@
|
|
| 1 |
-
隐私合规协同场景——智能体服务层实施 SPEC
|
| 2 |
-
|
| 3 |
-
版本:V1.0
|
| 4 |
-
状态:开工版
|
| 5 |
-
适用范围:本地/服务端智能体服务开发,不含桌面端与 Dify 前端实现
|
| 6 |
-
|
| 7 |
-
1. 文档目标
|
| 8 |
-
|
| 9 |
-
为“同业隐私协议跟踪与客户协议重构协同场景”提供可直接研发的智能体服务层规格。
|
| 10 |
-
本规格只覆盖:
|
| 11 |
-
|
| 12 |
-
4 个角色智能体服务
|
| 13 |
-
智能体之间的输入输出合同
|
| 14 |
-
Dify 调用这些服务的接口协议
|
| 15 |
-
结果结构和验收标准
|
| 16 |
-
|
| 17 |
-
本规格不覆盖:
|
| 18 |
-
|
| 19 |
-
桌面端安全底座
|
| 20 |
-
文件脱敏/反脱敏实现
|
| 21 |
-
FileBay 上传能力
|
| 22 |
-
Dify 页面设计与工作流画布实现
|
| 23 |
-
法务最终人工确认逻辑本体
|
| 24 |
-
同业抓取服务本体实现(如已有外部抓取服务)
|
| 25 |
-
2. 系统边界
|
| 26 |
-
2.1 本轮研发边界
|
| 27 |
-
你负责开发
|
| 28 |
-
同业/监管变化摘要智能体服务
|
| 29 |
-
协议重构智能体服务
|
| 30 |
-
合规校验智能体服务
|
| 31 |
-
法务审核包生成智能体服务
|
| 32 |
-
统一的数据模型与接口协议
|
| 33 |
-
可选:共享规则库 / Prompt 模板管理方式
|
| 34 |
-
外部依赖
|
| 35 |
-
桌面端负责脱敏、文件上传、FileBay 存储
|
| 36 |
-
Dify 负责工作流编排、知识库检索、人工法务确认节点
|
| 37 |
-
待发布中心由现有业务服务承接,或后续补建
|
| 38 |
-
同业抓取服务负责输出头部银行协议变化结果,不在本轮内开发
|
| 39 |
-
3. 总体业务目标
|
| 40 |
-
|
| 41 |
-
围绕“同业隐私协议跟踪与客户协议重构”场景,形成以下可执行能力链:
|
| 42 |
-
|
| 43 |
-
同业/监管变化摘要
|
| 44 |
-
→ 客户材料解析
|
| 45 |
-
→ 协议重构建议
|
| 46 |
-
→ 合规校验
|
| 47 |
-
→ 法务审核包生成
|
| 48 |
-
→ Dify人工法务确认
|
| 49 |
-
→ 待发布版本落库
|
| 50 |
-
|
| 51 |
-
本轮智能体层的目标是:
|
| 52 |
-
让 Dify 能稳定调用 4 个角色智能体服务,完成从材料到审核包的完整 AI 处理链。
|
| 53 |
-
|
| 54 |
-
4. 非目标
|
| 55 |
-
不开发桌面端文件处理与脱敏功能
|
| 56 |
-
不开发 Dify 页面与前端
|
| 57 |
-
不替代法务最终决策
|
| 58 |
-
不直接自动发布线上协议
|
| 59 |
-
不构建抓取爬虫系统本体
|
| 60 |
-
不在本轮支持多行业泛化,仅聚焦银行 APP 隐私协议场景
|
| 61 |
-
5. 角色智能体定义
|
| 62 |
-
AGENT-01 同业/监管变化摘要智能体
|
| 63 |
-
职责
|
| 64 |
-
汇总头部银行隐私协议变化
|
| 65 |
-
汇总监管文件、处罚案例变化
|
| 66 |
-
产出可供后续重构使用的“变化摘要”
|
| 67 |
-
输入
|
| 68 |
-
同业协议变化列表
|
| 69 |
-
监管变化列表
|
| 70 |
-
可选:业务线标签、APP 类型标签
|
| 71 |
-
输出
|
| 72 |
-
同业变化摘要
|
| 73 |
-
监管变化摘要
|
| 74 |
-
推荐参考条款
|
| 75 |
-
风险提醒项
|
| 76 |
-
不负责
|
| 77 |
-
直接生成客户协议条款
|
| 78 |
-
做最终合规判断
|
| 79 |
-
替代合规或法务审核
|
| 80 |
-
AGENT-02 协议重构智能体
|
| 81 |
-
职责
|
| 82 |
-
基于客户当前协议、PRD、权限清单、SDK 清单
|
| 83 |
-
结合同业/监管变化摘要
|
| 84 |
-
生成客户协议差异分析与修订建议
|
| 85 |
-
输入
|
| 86 |
-
当前隐私协议文本
|
| 87 |
-
PRD / 功能说明文本
|
| 88 |
-
权限清单文本或结构化列表
|
| 89 |
-
SDK 清单文本或结构化列表
|
| 90 |
-
同业变化摘要
|
| 91 |
-
监管变化摘要
|
| 92 |
-
输出
|
| 93 |
-
差异分析报告
|
| 94 |
-
建议修订条款列表
|
| 95 |
-
红线稿生成输入
|
| 96 |
-
风险项初筛
|
| 97 |
-
不负责
|
| 98 |
-
输出最终合规结论
|
| 99 |
-
替代法务审核
|
| 100 |
-
AGENT-03 合规校验智能体
|
| 101 |
-
职责
|
| 102 |
-
校验修订建议是否覆盖主要监管要求
|
| 103 |
-
校验协议与 PRD / 权限 / SDK 是否一致
|
| 104 |
-
标出高风险项、待确认项
|
| 105 |
-
输入
|
| 106 |
-
当前协议文本
|
| 107 |
-
修订建议稿
|
| 108 |
-
PRD / 权限 / SDK 材料
|
| 109 |
-
监管依据摘要
|
| 110 |
-
可选:内部制度摘要
|
| 111 |
-
输出
|
| 112 |
-
合规缺口清单
|
| 113 |
-
风险等级
|
| 114 |
-
待法务确认项
|
| 115 |
-
校验说明
|
| 116 |
-
不负责
|
| 117 |
-
直接修改协议文本
|
| 118 |
-
作出“已合规”最终结论
|
| 119 |
-
AGENT-04 法务审核包生成智能体
|
| 120 |
-
职责
|
| 121 |
-
整理前 3 个智能体的结果
|
| 122 |
-
输出法务可以直接阅读的审核包
|
| 123 |
-
汇总重点条款、依据和建议动作
|
| 124 |
-
输入
|
| 125 |
-
同业变化摘要
|
| 126 |
-
监管变化摘要
|
| 127 |
-
差异分析报告
|
| 128 |
-
修订建议稿
|
| 129 |
-
合规缺口清单
|
| 130 |
-
风险等级
|
| 131 |
-
待确认项
|
| 132 |
-
输出
|
| 133 |
-
法务审核包
|
| 134 |
-
审核建议(建议通过 / 建议退回 / 建议补材料)
|
| 135 |
-
重点关注条款
|
| 136 |
-
最终待审版本摘要
|
| 137 |
-
不负责
|
| 138 |
-
替代人工法务拍板
|
| 139 |
-
6. 智能体协作关系
|
| 140 |
-
AGENT-01 同业/监管变化摘要
|
| 141 |
-
→ AGENT-02 协议重构
|
| 142 |
-
→ AGENT-03 合规校验
|
| 143 |
-
→ AGENT-04 法务审核包生成
|
| 144 |
-
→ Dify Human Review(人工法务确认)
|
| 145 |
-
回退关系
|
| 146 |
-
人工法务确认
|
| 147 |
-
├─ 通过 → 待发布中心
|
| 148 |
-
├─ 退回 → 返回 AGENT-02
|
| 149 |
-
└─ 补材料 → 返回材料导入阶段
|
| 150 |
-
7. 输入输出数据模型
|
| 151 |
-
7.1 通用输入对象:CaseContext
|
| 152 |
-
{
|
| 153 |
-
"case_id": "case_001",
|
| 154 |
-
"customer_id": "cust_001",
|
| 155 |
-
"customer_name": "某银行",
|
| 156 |
-
"app_name": "手机银行APP",
|
| 157 |
-
"business_line": "retail",
|
| 158 |
-
"language": "zh-CN",
|
| 159 |
-
"materials": {
|
| 160 |
-
"current_policy_text": "...",
|
| 161 |
-
"prd_text": "...",
|
| 162 |
-
"permission_items": [],
|
| 163 |
-
"sdk_items": []
|
| 164 |
-
},
|
| 165 |
-
"external_context": {
|
| 166 |
-
"peer_updates": [],
|
| 167 |
-
"regulatory_updates": []
|
| 168 |
-
},
|
| 169 |
-
"metadata": {
|
| 170 |
-
"submitted_at": "2026-04-18T10:00:00Z",
|
| 171 |
-
"source": "desktop+filebay"
|
| 172 |
-
}
|
| 173 |
-
}
|
| 174 |
-
7.2 权限项结构 PermissionItem
|
| 175 |
-
{
|
| 176 |
-
"name": "相��权限",
|
| 177 |
-
"purpose": "身份证识别",
|
| 178 |
-
"trigger_page": "开户流程",
|
| 179 |
-
"required": true
|
| 180 |
-
}
|
| 181 |
-
7.3 SDK 项结构 SdkItem
|
| 182 |
-
{
|
| 183 |
-
"name": "某推送SDK",
|
| 184 |
-
"vendor": "某厂商",
|
| 185 |
-
"purpose": "消息推送",
|
| 186 |
-
"data_items": ["设备标识", "网络信息"],
|
| 187 |
-
"privacy_url": "https://example.com/privacy"
|
| 188 |
-
}
|
| 189 |
-
7.4 同业/监管变化摘要输出 PeerRegSummary
|
| 190 |
-
{
|
| 191 |
-
"peer_summary": "头部银行近期在第三方SDK披露、权限用途描述上更细化。",
|
| 192 |
-
"reg_summary": "近期监管强调最小必要原则和第三方共享透明度。",
|
| 193 |
-
"reference_clauses": [
|
| 194 |
-
{
|
| 195 |
-
"source": "某大行 2026-04 版本",
|
| 196 |
-
"clause": "..."
|
| 197 |
-
}
|
| 198 |
-
],
|
| 199 |
-
"risk_alerts": [
|
| 200 |
-
"第三方SDK用途披露不足"
|
| 201 |
-
]
|
| 202 |
-
}
|
| 203 |
-
7.5 差异分析输出 GapAnalysis
|
| 204 |
-
{
|
| 205 |
-
"gaps": [
|
| 206 |
-
{
|
| 207 |
-
"type": "permission_mismatch",
|
| 208 |
-
"severity": "high",
|
| 209 |
-
"description": "PRD中存在相机权限使用,但协议未明确用途",
|
| 210 |
-
"evidence": ["prd", "current_policy"]
|
| 211 |
-
}
|
| 212 |
-
],
|
| 213 |
-
"rewrite_suggestions": [
|
| 214 |
-
{
|
| 215 |
-
"section": "权限说明",
|
| 216 |
-
"old_text": "...",
|
| 217 |
-
"new_text": "...",
|
| 218 |
-
"reason": "补充相机权限用途说明"
|
| 219 |
-
}
|
| 220 |
-
],
|
| 221 |
-
"redline_seed": {
|
| 222 |
-
"old_policy": "...",
|
| 223 |
-
"suggestions": []
|
| 224 |
-
}
|
| 225 |
-
}
|
| 226 |
-
7.6 合规校验输出 ComplianceCheck
|
| 227 |
-
{
|
| 228 |
-
"risk_levels": {
|
| 229 |
-
"high": 2,
|
| 230 |
-
"medium": 3,
|
| 231 |
-
"low": 1
|
| 232 |
-
},
|
| 233 |
-
"compliance_gaps": [
|
| 234 |
-
{
|
| 235 |
-
"severity": "high",
|
| 236 |
-
"item": "SDK共享说明缺失",
|
| 237 |
-
"basis": "监管要求/同业样本"
|
| 238 |
-
}
|
| 239 |
-
],
|
| 240 |
-
"pending_legal_items": [
|
| 241 |
-
"是否需要单独披露某第三方SDK用途"
|
| 242 |
-
],
|
| 243 |
-
"conclusion": "需法务确认后方可进入待发布"
|
| 244 |
-
}
|
| 245 |
-
7.7 法务审核包输出 LegalReviewPack
|
| 246 |
-
{
|
| 247 |
-
"review_pack": {
|
| 248 |
-
"background": "...",
|
| 249 |
-
"key_changes": [],
|
| 250 |
-
"risk_summary": [],
|
| 251 |
-
"pending_items": [],
|
| 252 |
-
"references": []
|
| 253 |
-
},
|
| 254 |
-
"review_recommendation": "need_legal_review",
|
| 255 |
-
"focus_items": [
|
| 256 |
-
"第三方共享条款",
|
| 257 |
-
"相机权限用途说明"
|
| 258 |
-
]
|
| 259 |
-
}
|
| 260 |
-
8. 接口定义
|
| 261 |
-
API-01 同业/监管变化摘要
|
| 262 |
-
|
| 263 |
-
POST /api/agents/peer-reg-summary
|
| 264 |
-
|
| 265 |
-
request
|
| 266 |
-
{
|
| 267 |
-
"peer_updates": [],
|
| 268 |
-
"regulatory_updates": [],
|
| 269 |
-
"business_line": "retail",
|
| 270 |
-
"app_name": "手机银行APP"
|
| 271 |
-
}
|
| 272 |
-
response
|
| 273 |
-
|
| 274 |
-
返回 PeerRegSummary
|
| 275 |
-
|
| 276 |
-
API-02 协议重构
|
| 277 |
-
|
| 278 |
-
POST /api/agents/policy-rewrite
|
| 279 |
-
|
| 280 |
-
request
|
| 281 |
-
{
|
| 282 |
-
"case_context": {},
|
| 283 |
-
"peer_reg_summary": {}
|
| 284 |
-
}
|
| 285 |
-
response
|
| 286 |
-
|
| 287 |
-
返回 GapAnalysis
|
| 288 |
-
|
| 289 |
-
API-03 合规校验
|
| 290 |
-
|
| 291 |
-
POST /api/agents/compliance-check
|
| 292 |
-
|
| 293 |
-
request
|
| 294 |
-
{
|
| 295 |
-
"case_context": {},
|
| 296 |
-
"gap_analysis": {}
|
| 297 |
-
}
|
| 298 |
-
response
|
| 299 |
-
|
| 300 |
-
返回 ComplianceCheck
|
| 301 |
-
|
| 302 |
-
API-04 法务审核包生成
|
| 303 |
-
|
| 304 |
-
POST /api/agents/legal-pack
|
| 305 |
-
|
| 306 |
-
request
|
| 307 |
-
{
|
| 308 |
-
"case_context": {},
|
| 309 |
-
"peer_reg_summary": {},
|
| 310 |
-
"gap_analysis": {},
|
| 311 |
-
"compliance_check": {}
|
| 312 |
-
}
|
| 313 |
-
response
|
| 314 |
-
|
| 315 |
-
返回 LegalReviewPack
|
| 316 |
-
|
| 317 |
-
9. 与 Dify 的集成契约
|
| 318 |
-
Dify 负责调用顺序
|
| 319 |
-
调 peer-reg-summary
|
| 320 |
-
调 policy-rewrite
|
| 321 |
-
调 compliance-check
|
| 322 |
-
调 legal-pack
|
| 323 |
-
进入人工法务确认节点
|
| 324 |
-
Dify 提供给智能体服务的能力
|
| 325 |
-
当前任务上下文
|
| 326 |
-
知识库检索结果
|
| 327 |
-
FileBay / 桌面端材料文本化结果
|
| 328 |
-
人工审核节点状态
|
| 329 |
-
本地智能体服务对 Dify 的要求
|
| 330 |
-
输入字段完整
|
| 331 |
-
同一 case_id 可幂等重试
|
| 332 |
-
每次响应都返回结构化 JSON
|
| 333 |
-
所有高风险结论必须给出处说明字段
|
| 334 |
-
所有服务必须支持超时和错误码返回
|
| 335 |
-
10. 错误码与失败处理
|
| 336 |
-
错误码建议
|
| 337 |
-
4001 输入材料缺失
|
| 338 |
-
4002 输入格式错误
|
| 339 |
-
5001 智能体推理失败
|
| 340 |
-
5002 外部上下文缺失
|
| 341 |
-
5003 结果结构化失败
|
| 342 |
-
失败处理原则
|
| 343 |
-
缺材料:直接返回 need_more_material
|
| 344 |
-
推理失败:允许 Dify 重试 1 次
|
| 345 |
-
结构化失败:返回原始结果和错误说明
|
| 346 |
-
任何情况下不输出“已完全合规”
|
| 347 |
-
11. 非功能要求
|
| 348 |
-
NFR-01 安全
|
| 349 |
-
不接收未脱敏敏感原文作为长期存储对象
|
| 350 |
-
日志中不落完整敏感材料
|
| 351 |
-
所有输出需带 case_id 和时间戳
|
| 352 |
-
NFR-02 可观测性
|
| 353 |
-
每次调用记录:
|
| 354 |
-
case_id
|
| 355 |
-
agent_name
|
| 356 |
-
started_at
|
| 357 |
-
ended_at
|
| 358 |
-
status
|
| 359 |
-
error_code
|
| 360 |
-
NFR-03 幂等性
|
| 361 |
-
同一个 case_id + stage + input_hash 重试时,允许返回同一结果或同一版本结果
|
| 362 |
-
NFR-04 输出一致性
|
| 363 |
-
所有智能体输出必须严格符合 JSON schema
|
| 364 |
-
不允许返回自由散文式主结果
|
| 365 |
-
NFR-05 可扩展性
|
| 366 |
-
后续能平移复用到:
|
| 367 |
-
制度评审
|
| 368 |
-
监管报送
|
| 369 |
-
合同审核
|
| 370 |
-
12. 验收标准
|
| 371 |
-
AC-01 同业/监管变化摘要
|
| 372 |
-
|
| 373 |
-
Given 输入头部银行变化列表与监管变化列表
|
| 374 |
-
When 调用 peer-reg-summary
|
| 375 |
-
Then 返回同业摘要、监管摘要、参考条款和风险提醒
|
| 376 |
-
And 至少包含 1 条可引用参考条款
|
| 377 |
-
Verification programmatic + human review
|
| 378 |
-
|
| 379 |
-
AC-02 协议重构
|
| 380 |
-
|
| 381 |
-
Given 输入当前协议、PRD、权限、SDK 和变化摘要
|
| 382 |
-
When 调用 policy-rewrite
|
| 383 |
-
Then 返回差异分析报告和建议修订条款
|
| 384 |
-
And 输出必须包含:
|
| 385 |
-
|
| 386 |
-
gaps
|
| 387 |
-
rewrite_suggestions
|
| 388 |
-
redline_seed
|
| 389 |
-
Verification programmatic
|
| 390 |
-
AC-03 合规校验
|
| 391 |
-
|
| 392 |
-
Given 输入重构结果
|
| 393 |
-
When 调用 compliance-check
|
| 394 |
-
Then 返回风险分级、合规缺口和待法务确认项
|
| 395 |
-
And 不允许输出“已完全合规”绝对结论
|
| 396 |
-
Verification programmatic + human review
|
| 397 |
-
|
| 398 |
-
AC-04 法务审核包生成
|
| 399 |
-
|
| 400 |
-
Given 输入前 3 个智能体结果
|
| 401 |
-
When 调用 legal-pack
|
| 402 |
-
Then 返回完整审核包、审核建议和重点关注项
|
| 403 |
-
And 审核包必须可被 Dify 直接渲染为结构化文档
|
| 404 |
-
Verification programmatic + human review
|
| 405 |
-
|
| 406 |
-
AC-05 幂等性
|
| 407 |
-
|
| 408 |
-
Given 相同 case_id、相同输入重复调用
|
| 409 |
-
When 重试同一阶段接口
|
| 410 |
-
Then 服务不得产生冲突性结果结构
|
| 411 |
-
Verification programmatic
|
| 412 |
-
|
| 413 |
-
AC-06 错误处理
|
| 414 |
-
|
| 415 |
-
Given 缺少 PRD / 权限 / SDK 任一核心材料
|
| 416 |
-
When 调用相关接口
|
| 417 |
-
Then 返回标准错误码与缺失材料提示
|
| 418 |
-
Verification programmatic
|
| 419 |
-
|
| 420 |
-
13. 研发拆解建议
|
| 421 |
-
Sprint 1
|
| 422 |
-
定义统一 JSON schema
|
| 423 |
-
完成 AGENT-01 / AGENT-02 接口
|
| 424 |
-
打通 Dify 基本调用链
|
| 425 |
-
Sprint 2
|
| 426 |
-
完成 AGENT-03 / AGENT-04
|
| 427 |
-
补全错误码、日志、幂等
|
| 428 |
-
联调法务审核节点
|
| 429 |
-
Sprint 3
|
| 430 |
-
优化提示词、规则、输出一致性
|
| 431 |
-
联调待发布中心落库
|
| 432 |
-
准备 demo 数据与回归用例
|
| 433 |
-
14. 研发开工前必须确认的 4 个输入
|
| 434 |
-
|
| 435 |
-
这 4 个如果不定,研发会反复返工。
|
| 436 |
-
|
| 437 |
-
1. 当前协议输入格式
|
| 438 |
-
纯文本
|
| 439 |
-
文件解析结果
|
| 440 |
-
章节结构是否需要保留
|
| 441 |
-
2. PRD / 权限 / SDK 的最小字段集
|
| 442 |
-
|
| 443 |
-
至少要确定有没有统一模板。
|
| 444 |
-
|
| 445 |
-
3. 同业/监管变化摘要来源格式
|
| 446 |
-
|
| 447 |
-
是全文、结构化差异,还是摘要结果。
|
| 448 |
-
|
| 449 |
-
4. 待发布中心落库格式
|
| 450 |
-
|
| 451 |
-
即使本轮不开发,也要先定义字段。
|
| 452 |
-
|
| 453 |
-
最终结论
|
| 454 |
-
|
| 455 |
-
对,你现在本地研发范围可以收敛为“智能体服务层”,所以这份最优修订版 spec 也应该针对智能体。
|
| 456 |
-
|
| 457 |
-
但要记住,不是只针对 Prompt,而是针对:
|
| 458 |
-
|
| 459 |
-
角色智能体服务 + 输入输出合同 + Dify 集成契约
|
| 460 |
-
|
| 461 |
-
|
| 462 |
-
《4 个智能体的 Prompt 草案 + JSON Schema + Dify 节点映射表》。
|
| 463 |
-
按你现在的边界,建议这样落地:
|
| 464 |
-
|
| 465 |
-
4 个智能体服务由你本地/服务端开发;Dify 负责入口、检索、编排、人工法务确认、结果整合。
|
| 466 |
-
|
| 467 |
-
Dify 这层最适合用 Workflow + User Input 作为主入口;材料解析用 Document Extractor;监管与同业样本走 Knowledge Retrieval;调用你本地智能体服务走 HTTP Request;人工法务确认走 Human Input;结果整合和文档化走 Template;中间的标准化与字段整理用 Code。这些能力都在 Dify 当前官方文档里有对应节点定义。
|
| 468 |
-
|
| 469 |
-
记忆点
|
| 470 |
-
不是 1 个万能 Prompt,而是 4 个角色智能体各司其职。
|
| 471 |
-
所有智能体输出都必须是 JSON,不能返回散文式长文。
|
| 472 |
-
法务最终结论不由智能体给出,只输出审核建议和待确认项。
|
| 473 |
-
Dify 不做你的核心业务判断,Dify 做编排、检索、审核节点、结果组装。
|
| 474 |
-
最重要的是统一输入输出合同,否则 4 个智能体接不起来。
|
| 475 |
-
先保结构稳定,再调 Prompt 质量。
|
| 476 |
-
一、总体协作链
|
| 477 |
-
输入材料
|
| 478 |
-
(协议 / PRD / 权限清单 / SDK清单 / 同业变化 / 监管变化)
|
| 479 |
-
→ AGENT-01 同业/监管变化摘要
|
| 480 |
-
→ AGENT-02 协议重构
|
| 481 |
-
→ AGENT-03 合规校验
|
| 482 |
-
→ AGENT-04 法务审核包生成
|
| 483 |
-
→ Dify Human Input 人工法务确认
|
| 484 |
-
→ 通过 / 退回 / 补材料
|
| 485 |
-
二、统一输入上下文
|
| 486 |
-
|
| 487 |
-
4 个智能体都建议吃统一对象,避免每个接口各说各话。
|
| 488 |
-
|
| 489 |
-
统一输入对象 CaseContext
|
| 490 |
-
{
|
| 491 |
-
"case_id": "case_001",
|
| 492 |
-
"customer_id": "cust_001",
|
| 493 |
-
"customer_name": "某银行",
|
| 494 |
-
"app_name": "手机银行APP",
|
| 495 |
-
"business_line": "retail",
|
| 496 |
-
"language": "zh-CN",
|
| 497 |
-
"materials": {
|
| 498 |
-
"current_policy_text": "当前隐私协议全文",
|
| 499 |
-
"prd_text": "PRD/功能说明全文",
|
| 500 |
-
"permission_items": [
|
| 501 |
-
{
|
| 502 |
-
"name": "相机权限",
|
| 503 |
-
"purpose": "身份证识别",
|
| 504 |
-
"trigger_page": "开户流程",
|
| 505 |
-
"required": true
|
| 506 |
-
}
|
| 507 |
-
],
|
| 508 |
-
"sdk_items": [
|
| 509 |
-
{
|
| 510 |
-
"name": "某推送SDK",
|
| 511 |
-
"vendor": "某厂商",
|
| 512 |
-
"purpose": "消息推送",
|
| 513 |
-
"data_items": ["设备标识", "网络信息"],
|
| 514 |
-
"privacy_url": "https://example.com/privacy"
|
| 515 |
-
}
|
| 516 |
-
]
|
| 517 |
-
},
|
| 518 |
-
"external_context": {
|
| 519 |
-
"peer_updates": [],
|
| 520 |
-
"regulatory_updates": []
|
| 521 |
-
},
|
| 522 |
-
"metadata": {
|
| 523 |
-
"submitted_at": "2026-04-18T10:00:00Z",
|
| 524 |
-
"source": "desktop+filebay"
|
| 525 |
-
}
|
| 526 |
-
}
|
| 527 |
-
三、4 个智能体 Prompt 草案
|
| 528 |
-
|
| 529 |
-
下面给的是 System Prompt 草案。
|
| 530 |
-
建议你本地服务采用:
|
| 531 |
-
|
| 532 |
-
system_prompt
|
| 533 |
-
developer_prompt
|
| 534 |
-
user_payload_json
|
| 535 |
-
|
| 536 |
-
三段式结构。
|
| 537 |
-
这里先给最关键的 system_prompt。
|
| 538 |
-
|
| 539 |
-
AGENT-01 同业/监管变化摘要智能体
|
| 540 |
-
目标
|
| 541 |
-
|
| 542 |
-
把同业协议变化、监管变化整理成后续可消费的“变化摘要对象”。
|
| 543 |
-
|
| 544 |
-
System Prompt
|
| 545 |
-
你是银行APP隐私合规场景中的“同业/监管变化摘要智能体”。
|
| 546 |
-
|
| 547 |
-
你的职责只有四项:
|
| 548 |
-
1. ��纳头部银行隐私协议的关键变化;
|
| 549 |
-
2. 归纳监管文件、处罚案例、通报中的关键变化;
|
| 550 |
-
3. 提炼出可供客户协议重构参考的条款方向;
|
| 551 |
-
4. 标记高风险提醒项。
|
| 552 |
-
|
| 553 |
-
你不是协议重构智能体,不负责直接改写客户协议,也不负责最终合规结论。
|
| 554 |
-
|
| 555 |
-
输入会包含:
|
| 556 |
-
- peer_updates:同业协议变化记录
|
| 557 |
-
- regulatory_updates:监管变化记录
|
| 558 |
-
- app_name / business_line:场景上下文
|
| 559 |
-
|
| 560 |
-
输出必须满足以下要求:
|
| 561 |
-
- 只输出 JSON,不要输出 Markdown,不要输出解释性废话;
|
| 562 |
-
- 必须区分 peer_summary 和 reg_summary;
|
| 563 |
-
- reference_clauses 只保留最有代表性的参考条款;
|
| 564 |
-
- risk_alerts 只输出真正影响后续协议重构的风险点;
|
| 565 |
-
- 若信息不足,明确写入 insufficient_context=true,不得臆造。
|
| 566 |
-
|
| 567 |
-
输出语言:中文。
|
| 568 |
-
输出 JSON 示例
|
| 569 |
-
{
|
| 570 |
-
"insufficient_context": false,
|
| 571 |
-
"peer_summary": "头部银行近期在第三方SDK披露、权限用途描述上更细化。",
|
| 572 |
-
"reg_summary": "近期监管强调最小必要原则、第三方共享透明度和用户知情权。",
|
| 573 |
-
"reference_clauses": [
|
| 574 |
-
{
|
| 575 |
-
"source": "某大行 2026-04 版本",
|
| 576 |
-
"topic": "第三方SDK披露",
|
| 577 |
-
"clause": "我们接入第三方SDK用于消息推送,并披露其处理信息类型与用途。"
|
| 578 |
-
}
|
| 579 |
-
],
|
| 580 |
-
"risk_alerts": [
|
| 581 |
-
"第三方SDK用途披露不足",
|
| 582 |
-
"相机权限用途描述不充分"
|
| 583 |
-
]
|
| 584 |
-
}
|
| 585 |
-
AGENT-02 协议重构智能体
|
| 586 |
-
目标
|
| 587 |
-
|
| 588 |
-
基于客户材料 + 同业/监管摘要,生成差异分析和修订建议。
|
| 589 |
-
|
| 590 |
-
System Prompt
|
| 591 |
-
你是银行APP隐私合规场景中的“协议重构智能体”。
|
| 592 |
-
|
| 593 |
-
你的职责只有三项:
|
| 594 |
-
1. 对比客户当前协议、PRD、权限清单、SDK清单之间的一致性;
|
| 595 |
-
2. 结合同业变化摘要和监管变化摘要,识别协议缺口;
|
| 596 |
-
3. 生成建议修订条款和红线稿输入。
|
| 597 |
-
|
| 598 |
-
你不是合规校验智能体,也不是法务审核智能体。
|
| 599 |
-
你不能输出“已完全合规”“可直接发布”之类的最终结论。
|
| 600 |
-
|
| 601 |
-
输入会包含:
|
| 602 |
-
- 当前协议全文
|
| 603 |
-
- PRD全文
|
| 604 |
-
- 权限清单
|
| 605 |
-
- SDK清单
|
| 606 |
-
- 同业变化摘要
|
| 607 |
-
- 监管变化摘要
|
| 608 |
-
|
| 609 |
-
你的输出必须:
|
| 610 |
-
- 只输出 JSON;
|
| 611 |
-
- 每个 gap 必须有 type、severity、description、evidence;
|
| 612 |
-
- rewrite_suggestions 必须给出 old_text/new_text/reason;
|
| 613 |
-
- 若某个判断缺少明确依据,必须放入 uncertain_items;
|
| 614 |
-
- 不允许生成没有依据来源的强结论。
|
| 615 |
-
|
| 616 |
-
输出语言:中文。
|
| 617 |
-
输出 JSON 示例
|
| 618 |
-
{
|
| 619 |
-
"insufficient_context": false,
|
| 620 |
-
"gaps": [
|
| 621 |
-
{
|
| 622 |
-
"type": "permission_mismatch",
|
| 623 |
-
"severity": "high",
|
| 624 |
-
"description": "PRD中存在相机权限使用,但协议未明确用途",
|
| 625 |
-
"evidence": ["prd.camera_usage", "policy.permissions_section"]
|
| 626 |
-
}
|
| 627 |
-
],
|
| 628 |
-
"rewrite_suggestions": [
|
| 629 |
-
{
|
| 630 |
-
"section": "权限说明",
|
| 631 |
-
"old_text": "我们可能会申请设备权限。",
|
| 632 |
-
"new_text": "为完成身份证识别与开户验证功能,我们会在开户流程中申请相机权限。",
|
| 633 |
-
"reason": "补充相机权限用途说明"
|
| 634 |
-
}
|
| 635 |
-
],
|
| 636 |
-
"uncertain_items": [
|
| 637 |
-
"某第三方SDK是否需要单独披露其数据共享目的"
|
| 638 |
-
],
|
| 639 |
-
"redline_seed": {
|
| 640 |
-
"old_policy": "当前协议全文",
|
| 641 |
-
"suggestions": [
|
| 642 |
-
{
|
| 643 |
-
"section": "权限说明",
|
| 644 |
-
"new_text": "..."
|
| 645 |
-
}
|
| 646 |
-
]
|
| 647 |
-
}
|
| 648 |
-
}
|
| 649 |
-
AGENT-03 合规校验智能体
|
| 650 |
-
目标
|
| 651 |
-
|
| 652 |
-
校验修订建议是否覆盖监管要求,标出高风险与待法务确认项。
|
| 653 |
-
|
| 654 |
-
System Prompt
|
| 655 |
-
你是银行APP隐私合规场景中的“合规校验智能体”。
|
| 656 |
-
|
| 657 |
-
你的职责只有三项:
|
| 658 |
-
1. 校验协议重构结果是否覆盖主要监管要求;
|
| 659 |
-
2. 校验修订建议与PRD、权限清单、SDK清单是否一致;
|
| 660 |
-
3. 输出风险等级、合规缺口和待法务确认项。
|
| 661 |
-
|
| 662 |
-
你不负责直接修改协议文本,不负责最终法律意见。
|
| 663 |
-
你绝对不能输出“已完全合规”“无需法务审核”这类结论。
|
| 664 |
-
|
| 665 |
-
输入会包含:
|
| 666 |
-
- 当前协议文本
|
| 667 |
-
- 协议重构结果
|
| 668 |
-
- PRD / 权限 / SDK 材料
|
| 669 |
-
- 同业变化摘要
|
| 670 |
-
- 监管变化摘要
|
| 671 |
-
|
| 672 |
-
你的输出必须:
|
| 673 |
-
- 只输出 JSON;
|
| 674 |
-
- 对每个风险项标出 severity、item、basis;
|
| 675 |
-
- pending_legal_items 只放真正需要法务拍板的问题;
|
| 676 |
-
- conclusion 只能是“需法务确认后进入待发布”或类似审慎表达;
|
| 677 |
-
- 若依据不足,必须写入 insufficient_context=true。
|
| 678 |
-
|
| 679 |
-
输出语言:中文。
|
| 680 |
-
输出 JSON 示例
|
| 681 |
-
{
|
| 682 |
-
"insufficient_context": false,
|
| 683 |
-
"risk_levels": {
|
| 684 |
-
"high": 2,
|
| 685 |
-
"medium": 3,
|
| 686 |
-
"low": 1
|
| 687 |
-
},
|
| 688 |
-
"compliance_gaps": [
|
| 689 |
-
{
|
| 690 |
-
"severity": "high",
|
| 691 |
-
"item": "SDK共享说明缺失",
|
| 692 |
-
"basis": "监管要求强调第三方共享透明度"
|
| 693 |
-
}
|
| 694 |
-
],
|
| 695 |
-
"pending_legal_items": [
|
| 696 |
-
"是否需要单独披露某第三方SDK的数据共享场景",
|
| 697 |
-
"是否需要在未成年人条款中补充说明"
|
| 698 |
-
],
|
| 699 |
-
"conclusion": "需法务确认后方可进入待发布"
|
| 700 |
-
}
|
| 701 |
-
AGENT-04 法务审核包生成智能体
|
| 702 |
-
目标
|
| 703 |
-
|
| 704 |
-
把前 3 个智能体结果整理成法务可直接阅读的审核包。
|
| 705 |
-
|
| 706 |
-
System Prompt
|
| 707 |
-
你是银行APP隐私合规场景中的“法务审核包生成智能体”。
|
| 708 |
-
|
| 709 |
-
你的职责只有三项:
|
| 710 |
-
1. 汇总同业/监管变化摘要、协议重构结果、合规校验结果;
|
| 711 |
-
2. 生成适合法务阅读的审核包结构;
|
| 712 |
-
3. 输出审核建议与重点关注条款。
|
| 713 |
-
|
| 714 |
-
你不替代人工法务做最终审批。
|
| 715 |
-
你不能输出“审核通过”最终决定,只能输出“建议通过 / 建议退回 / 建议补材料”。
|
| 716 |
-
|
| 717 |
-
输入会包含:
|
| 718 |
-
- 同业变化摘要
|
| 719 |
-
- 监管变化摘要
|
| 720 |
-
- 差异分析报告
|
| 721 |
-
- 修订建议稿
|
| 722 |
-
- 合规缺口清单
|
| 723 |
-
- 风险等级
|
| 724 |
-
- 待法务确认项
|
| 725 |
-
|
| 726 |
-
你的输出必须:
|
| 727 |
-
- 只输出 JSON;
|
| 728 |
-
- review_pack 中必须有 background、key_changes、risk_summary、pending_items、references;
|
| 729 |
-
- review_recommendation 只能取:suggest_approve / suggest_reject / suggest_more_material;
|
| 730 |
-
- focus_items 只保留最关键的法务关注点;
|
| 731 |
-
- 不得出现最终审批语气。
|
| 732 |
-
|
| 733 |
-
输出语言:中文。
|
| 734 |
-
输出 JSON 示例
|
| 735 |
-
{
|
| 736 |
-
"review_pack": {
|
| 737 |
-
"background": "本次更新基于同业协议变化与监管强调项,对客户协议进行重构。",
|
| 738 |
-
"key_changes": [
|
| 739 |
-
"补充相机权限用途说明",
|
| 740 |
-
"补充第三方SDK共享说明"
|
| 741 |
-
],
|
| 742 |
-
"risk_summary": [
|
| 743 |
-
"第三方共享条款不充分",
|
| 744 |
-
"权限申请用途描述不清"
|
| 745 |
-
],
|
| 746 |
-
"pending_items": [
|
| 747 |
-
"某SDK是否需要单独列示",
|
| 748 |
-
"历史采集项描述是否需要追溯修订"
|
| 749 |
-
],
|
| 750 |
-
"references": [
|
| 751 |
-
"某监管通报 2026-03",
|
| 752 |
-
"某大行协议版本 2026-04"
|
| 753 |
-
]
|
| 754 |
-
},
|
| 755 |
-
"review_recommendation": "suggest_more_material",
|
| 756 |
-
"focus_items": [
|
| 757 |
-
"第三方SDK共享条款",
|
| 758 |
-
"相机权限用途说明",
|
| 759 |
-
"未成年人信息处理条款"
|
| 760 |
-
]
|
| 761 |
-
}
|
| 762 |
-
四、JSON Schema
|
| 763 |
-
|
| 764 |
-
下面给研发直接能用的 简化版 JSON Schema。
|
| 765 |
-
你可以先按这个版本开发,后面再细化字段。
|
| 766 |
-
|
| 767 |
-
1. PeerRegSummary.schema.json
|
| 768 |
-
{
|
| 769 |
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
| 770 |
-
"title": "PeerRegSummary",
|
| 771 |
-
"type": "object",
|
| 772 |
-
"required": [
|
| 773 |
-
"insufficient_context",
|
| 774 |
-
"peer_summary",
|
| 775 |
-
"reg_summary",
|
| 776 |
-
"reference_clauses",
|
| 777 |
-
"risk_alerts"
|
| 778 |
-
],
|
| 779 |
-
"properties": {
|
| 780 |
-
"insufficient_context": {
|
| 781 |
-
"type": "boolean"
|
| 782 |
-
},
|
| 783 |
-
"peer_summary": {
|
| 784 |
-
"type": "string"
|
| 785 |
-
},
|
| 786 |
-
"reg_summary": {
|
| 787 |
-
"type": "string"
|
| 788 |
-
},
|
| 789 |
-
"reference_clauses": {
|
| 790 |
-
"type": "array",
|
| 791 |
-
"items": {
|
| 792 |
-
"type": "object",
|
| 793 |
-
"required": ["source", "topic", "clause"],
|
| 794 |
-
"properties": {
|
| 795 |
-
"source": { "type": "string" },
|
| 796 |
-
"topic": { "type": "string" },
|
| 797 |
-
"clause": { "type": "string" }
|
| 798 |
-
}
|
| 799 |
-
}
|
| 800 |
-
},
|
| 801 |
-
"risk_alerts": {
|
| 802 |
-
"type": "array",
|
| 803 |
-
"items": { "type": "string" }
|
| 804 |
-
}
|
| 805 |
-
}
|
| 806 |
-
}
|
| 807 |
-
2. GapAnalysis.schema.json
|
| 808 |
-
{
|
| 809 |
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
| 810 |
-
"title": "GapAnalysis",
|
| 811 |
-
"type": "object",
|
| 812 |
-
"required": [
|
| 813 |
-
"insufficient_context",
|
| 814 |
-
"gaps",
|
| 815 |
-
"rewrite_suggestions",
|
| 816 |
-
"uncertain_items",
|
| 817 |
-
"redline_seed"
|
| 818 |
-
],
|
| 819 |
-
"properties": {
|
| 820 |
-
"insufficient_context": {
|
| 821 |
-
"type": "boolean"
|
| 822 |
-
},
|
| 823 |
-
"gaps": {
|
| 824 |
-
"type": "array",
|
| 825 |
-
"items": {
|
| 826 |
-
"type": "object",
|
| 827 |
-
"required": ["type", "severity", "description", "evidence"],
|
| 828 |
-
"properties": {
|
| 829 |
-
"type": { "type": "string" },
|
| 830 |
-
"severity": {
|
| 831 |
-
"type": "string",
|
| 832 |
-
"enum": ["high", "medium", "low"]
|
| 833 |
-
},
|
| 834 |
-
"description": { "type": "string" },
|
| 835 |
-
"evidence": {
|
| 836 |
-
"type": "array",
|
| 837 |
-
"items": { "type": "string" }
|
| 838 |
-
}
|
| 839 |
-
}
|
| 840 |
-
}
|
| 841 |
-
},
|
| 842 |
-
"rewrite_suggestions": {
|
| 843 |
-
"type": "array",
|
| 844 |
-
"items": {
|
| 845 |
-
"type": "object",
|
| 846 |
-
"required": ["section", "old_text", "new_text", "reason"],
|
| 847 |
-
"properties": {
|
| 848 |
-
"section": { "type": "string" },
|
| 849 |
-
"old_text": { "type": "string" },
|
| 850 |
-
"new_text": { "type": "string" },
|
| 851 |
-
"reason": { "type": "string" }
|
| 852 |
-
}
|
| 853 |
-
}
|
| 854 |
-
},
|
| 855 |
-
"uncertain_items": {
|
| 856 |
-
"type": "array",
|
| 857 |
-
"items": { "type": "string" }
|
| 858 |
-
},
|
| 859 |
-
"redline_seed": {
|
| 860 |
-
"type": "object",
|
| 861 |
-
"required": ["old_policy", "suggestions"],
|
| 862 |
-
"properties": {
|
| 863 |
-
"old_policy": { "type": "string" },
|
| 864 |
-
"suggestions": {
|
| 865 |
-
"type": "array",
|
| 866 |
-
"items": {
|
| 867 |
-
"type": "object",
|
| 868 |
-
"required": ["section", "new_text"],
|
| 869 |
-
"properties": {
|
| 870 |
-
"section": { "type": "string" },
|
| 871 |
-
"new_text": { "type": "string" }
|
| 872 |
-
}
|
| 873 |
-
}
|
| 874 |
-
}
|
| 875 |
-
}
|
| 876 |
-
}
|
| 877 |
-
}
|
| 878 |
-
}
|
| 879 |
-
3. ComplianceCheck.schema.json
|
| 880 |
-
{
|
| 881 |
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
| 882 |
-
"title": "ComplianceCheck",
|
| 883 |
-
"type": "object",
|
| 884 |
-
"required": [
|
| 885 |
-
"insufficient_context",
|
| 886 |
-
"risk_levels",
|
| 887 |
-
"compliance_gaps",
|
| 888 |
-
"pending_legal_items",
|
| 889 |
-
"conclusion"
|
| 890 |
-
],
|
| 891 |
-
"properties": {
|
| 892 |
-
"insufficient_context": {
|
| 893 |
-
"type": "boolean"
|
| 894 |
-
},
|
| 895 |
-
"risk_levels": {
|
| 896 |
-
"type": "object",
|
| 897 |
-
"required": ["high", "medium", "low"],
|
| 898 |
-
"properties": {
|
| 899 |
-
"high": { "type": "integer" },
|
| 900 |
-
"medium": { "type": "integer" },
|
| 901 |
-
"low": { "type": "integer" }
|
| 902 |
-
}
|
| 903 |
-
},
|
| 904 |
-
"compliance_gaps": {
|
| 905 |
-
"type": "array",
|
| 906 |
-
"items": {
|
| 907 |
-
"type": "object",
|
| 908 |
-
"required": ["severity", "item", "basis"],
|
| 909 |
-
"properties": {
|
| 910 |
-
"severity": {
|
| 911 |
-
"type": "string",
|
| 912 |
-
"enum": ["high", "medium", "low"]
|
| 913 |
-
},
|
| 914 |
-
"item": { "type": "string" },
|
| 915 |
-
"basis": { "type": "string" }
|
| 916 |
-
}
|
| 917 |
-
}
|
| 918 |
-
},
|
| 919 |
-
"pending_legal_items": {
|
| 920 |
-
"type": "array",
|
| 921 |
-
"items": { "type": "string" }
|
| 922 |
-
},
|
| 923 |
-
"conclusion": {
|
| 924 |
-
"type": "string"
|
| 925 |
-
}
|
| 926 |
-
}
|
| 927 |
-
}
|
| 928 |
-
4. LegalReviewPack.schema.json
|
| 929 |
-
{
|
| 930 |
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
| 931 |
-
"title": "LegalReviewPack",
|
| 932 |
-
"type": "object",
|
| 933 |
-
"required": [
|
| 934 |
-
"review_pack",
|
| 935 |
-
"review_recommendation",
|
| 936 |
-
"focus_items"
|
| 937 |
-
],
|
| 938 |
-
"properties": {
|
| 939 |
-
"review_pack": {
|
| 940 |
-
"type": "object",
|
| 941 |
-
"required": [
|
| 942 |
-
"background",
|
| 943 |
-
"key_changes",
|
| 944 |
-
"risk_summary",
|
| 945 |
-
"pending_items",
|
| 946 |
-
"references"
|
| 947 |
-
],
|
| 948 |
-
"properties": {
|
| 949 |
-
"background": { "type": "string" },
|
| 950 |
-
"key_changes": {
|
| 951 |
-
"type": "array",
|
| 952 |
-
"items": { "type": "string" }
|
| 953 |
-
},
|
| 954 |
-
"risk_summary": {
|
| 955 |
-
"type": "array",
|
| 956 |
-
"items": { "type": "string" }
|
| 957 |
-
},
|
| 958 |
-
"pending_items": {
|
| 959 |
-
"type": "array",
|
| 960 |
-
"items": { "type": "string" }
|
| 961 |
-
},
|
| 962 |
-
"references": {
|
| 963 |
-
"type": "array",
|
| 964 |
-
"items": { "type": "string" }
|
| 965 |
-
}
|
| 966 |
-
}
|
| 967 |
-
},
|
| 968 |
-
"review_recommendation": {
|
| 969 |
-
"type": "string",
|
| 970 |
-
"enum": [
|
| 971 |
-
"suggest_approve",
|
| 972 |
-
"suggest_reject",
|
| 973 |
-
"suggest_more_material"
|
| 974 |
-
]
|
| 975 |
-
},
|
| 976 |
-
"focus_items": {
|
| 977 |
-
"type": "array",
|
| 978 |
-
"items": { "type": "string" }
|
| 979 |
-
}
|
| 980 |
-
}
|
| 981 |
-
}
|
| 982 |
-
五、Dify 节点映射表
|
| 983 |
-
|
| 984 |
-
你现在最适合的 Dify 形态是:
|
| 985 |
-
|
| 986 |
-
1 个主 Workflow:隐私合规协同工作台
|
| 987 |
-
1 个辅助 Trigger Workflow:同业/监管变化摘要更新
|
| 988 |
-
可选 1 个 Chatflow:法务追问助手
|
| 989 |
-
|
| 990 |
-
Dify 的 Workflow/Chatflow、User Input、Document Extractor、Knowledge Retrieval、HTTP Request、Human Input、Template、Code 节点都能直接支撑这套设计。User Input 适合作为用户入口;Document Extractor 负责把上传文档转成文本;Knowledge Retrieval 负责把知识库检索结果交给下游节点;HTTP Request 连接你的本地/服务端智能体 API;Human Input 负责人工审核;Template 用 Jinja2 格式化多源数据;Code 适合做复杂数据整形。
|
| 991 |
-
|
| 992 |
-
A. 主 Workflow:隐私合规协同工作台
|
| 993 |
-
顺序 Dify 节点 节点用途 输入 输出 对应智能体/逻辑
|
| 994 |
-
1 User Input 收集 case 基本信息和文件 customer_name, app_name, policy_file, prd_file, permission_file, sdk_file 原始输入变量 场景入口
|
| 995 |
-
2 HTTP Request(可选) 若文件已在 FileBay,拉取材料文本或元信息 file_id / path file text / metadata 材料读取
|
| 996 |
-
3 Document Extractor - Policy 解析协议文本 policy_file policy_text 材料解析
|
| 997 |
-
4 Document Extractor - PRD 解析 PRD 文本 prd_file prd_text 材料解析
|
| 998 |
-
5 Document Extractor - Permission 解析权限清单 permission_file permission_text 材料解析
|
| 999 |
-
6 Document Extractor - SDK 解析 SDK 清单 sdk_file sdk_text 材料解析
|
| 1000 |
-
7 Code 标准化 CaseContext,补默认值,做缺材料校验 上述文本与表单变量 case_context, missing_items 输入标准化
|
| 1001 |
-
8 Knowledge Retrieval - Regulatory 检索监管依据库 app_name / 关键词 regulatory_context 外部依据
|
| 1002 |
-
9 Knowledge Retrieval - Peer 检索同业样本库 app_name / 行业关键词 peer_context 外部依据
|
| 1003 |
-
10 HTTP Request 调 AGENT-01 peer_updates + regulatory_updates peer_reg_summary 同业/监管变化摘要
|
| 1004 |
-
11 HTTP Request 调 AGENT-02 case_context + peer_reg_summary gap_analysis 协议重构
|
| 1005 |
-
12 HTTP Request 调 AGENT-03 case_context + gap_analysis compliance_check 合规校验
|
| 1006 |
-
13 HTTP Request 调 AGENT-04 case_context + 上游三段结果 legal_review_pack 法务审核包
|
| 1007 |
-
14 Template 组装差异分析报告、审核摘要、红线稿展示体 上游 JSON formatted_review_material 结果格式化
|
| 1008 |
-
15 Human Input 人工法务确认 formatted_review_material approve / reject / need_more_material + comments 最终法务确认
|
| 1009 |
-
16 Code / 条件逻辑 根据法务结果分流 human decision branch result 流程分支
|
| 1010 |
-
17A HTTP Request 写入待发布中心 审核通过结果 draft_id / version 通过分支
|
| 1011 |
-
17B Template 生成退回修改清单 法务 comments reject_summary 退回分支
|
| 1012 |
-
17C Template 生成补材料清单 missing_items + comments material_request 补材料分支
|
| 1013 |
-
18 Answer / Output 对前端返回最终结果 分支结果 最终可展示结果 工作流结束
|
| 1014 |
-
B. 辅助 Trigger Workflow:同业/监管变化更新
|
| 1015 |
-
顺序 Dify 节点 用途 输入 输出
|
| 1016 |
-
1 Trigger / Webhook 定时或外部事件触发 schedule / webhook trigger params
|
| 1017 |
-
2 HTTP Request 调外部抓取服务 target list peer_updates / regulatory_updates
|
| 1018 |
-
3 HTTP Request 调 AGENT-01 peer_updates + regulatory_updates peer_reg_summary
|
| 1019 |
-
4 Template 生成变化摘要文本 peer_reg_summary summary_doc
|
| 1020 |
-
5 HTTP Request 写入样本库服务/消息中心 summary_doc sync result
|
| 1021 |
-
C. 可选 Chatflow:法务追问助手
|
| 1022 |
-
节点 用途
|
| 1023 |
-
User Input 法务追问
|
| 1024 |
-
Knowledge Retrieval - Regulatory / Peer 检索监管与同业依据
|
| 1025 |
-
LLM 生成解释型回答
|
| 1026 |
-
Answer 输出追问结果
|
| 1027 |
-
|
| 1028 |
-
这个助手不要做审批,只做“为什么这样改”“依据是什么”的解释层。
|
| 1029 |
-
|
| 1030 |
-
六、推荐的本地/服务端 API 形态
|
| 1031 |
-
1. POST /api/agents/peer-reg-summary
|
| 1032 |
-
|
| 1033 |
-
输入:
|
| 1034 |
-
|
| 1035 |
-
peer_updates
|
| 1036 |
-
regulatory_updates
|
| 1037 |
-
app_name
|
| 1038 |
-
business_line
|
| 1039 |
-
|
| 1040 |
-
输出:
|
| 1041 |
-
|
| 1042 |
-
PeerRegSummary
|
| 1043 |
-
2. POST /api/agents/policy-rewrite
|
| 1044 |
-
|
| 1045 |
-
输入:
|
| 1046 |
-
|
| 1047 |
-
case_context
|
| 1048 |
-
peer_reg_summary
|
| 1049 |
-
|
| 1050 |
-
输出:
|
| 1051 |
-
|
| 1052 |
-
GapAnalysis
|
| 1053 |
-
3. POST /api/agents/compliance-check
|
| 1054 |
-
|
| 1055 |
-
输入:
|
| 1056 |
-
|
| 1057 |
-
case_context
|
| 1058 |
-
gap_analysis
|
| 1059 |
-
|
| 1060 |
-
输出:
|
| 1061 |
-
|
| 1062 |
-
ComplianceCheck
|
| 1063 |
-
4. POST /api/agents/legal-pack
|
| 1064 |
-
|
| 1065 |
-
输入:
|
| 1066 |
-
|
| 1067 |
-
case_context
|
| 1068 |
-
peer_reg_summary
|
| 1069 |
-
gap_analysis
|
| 1070 |
-
compliance_check
|
| 1071 |
-
|
| 1072 |
-
输出:
|
| 1073 |
-
|
| 1074 |
-
LegalReviewPack
|
| 1075 |
-
七、Prompt 落地建议
|
| 1076 |
-
|
| 1077 |
-
这 4 个 Prompt 不建议直接写死在 Dify 里。
|
| 1078 |
-
最优方式是:
|
| 1079 |
-
|
| 1080 |
-
Prompt 主体放你本地智能体服务
|
| 1081 |
-
Dify 只传:
|
| 1082 |
-
结构化输入
|
| 1083 |
-
知识库摘要结果
|
| 1084 |
-
当前任务上下文
|
| 1085 |
-
|
| 1086 |
-
这样后面你调 Prompt、做 A/B、做版本管理都会更好。
|
| 1087 |
-
|
| 1088 |
-
八、研发最容易踩的坑
|
| 1089 |
-
1. 输出不结构化
|
| 1090 |
-
|
| 1091 |
-
必须强制 JSON。
|
| 1092 |
-
不要让任何一个智能体返回“自然语言段落 + 半结构化列表”。
|
| 1093 |
-
|
| 1094 |
-
2. AGENT-02 和 AGENT-03 职责混掉
|
| 1095 |
-
AGENT-02 负责 重构
|
| 1096 |
-
AGENT-03 负责 校验
|
| 1097 |
-
|
| 1098 |
-
绝对不能混。
|
| 1099 |
-
|
| 1100 |
-
3. AGENT-04 越权
|
| 1101 |
-
|
| 1102 |
-
它只能输出审核包和建议,不能输出最终审批结论。
|
| 1103 |
-
|
| 1104 |
-
4. Dify 承担太多业务逻辑
|
| 1105 |
-
|
| 1106 |
-
Dify 负责编排,不要把规则判断都塞进 Dify 画布。
|
| 1107 |
-
|
| 1108 |
-
九、最优的最小可跑版本
|
| 1109 |
-
|
| 1110 |
-
第一版只要做到这 4 点就能开跑:
|
| 1111 |
-
|
| 1112 |
-
4 个 API 可用
|
| 1113 |
-
4 个 JSON Schema 稳定
|
| 1114 |
-
Dify 主 Workflow 能串起来
|
| 1115 |
-
法务 Human Input 能完成“通过 / 退回 / 补材料”
|
| 1116 |
-
|
| 1117 |
-
这样你就已经有了一个可演示、可试用、可继续优化的样板场景。
|
| 1118 |
-
|
| 1119 |
-
十、最终结论
|
| 1120 |
-
|
| 1121 |
-
这套东西现在已经可以直接给研发了。
|
| 1122 |
-
最关键的不是再补概念,而是:
|
| 1123 |
-
|
| 1124 |
-
先把 4 个智能体的 JSON 输出做稳定,再把 Dify 工作流串起来。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|