luoleyuan commited on
Commit
c34b31b
·
verified ·
1 Parent(s): 61c3766

Delete 方案.md

Browse files
Files changed (1) hide show
  1. 方案.md +0 -1124
方案.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 工作流串起来。