Files
X-Financial/document/development/hermes_agent/03_risk_scan_module.md

33 lines
2.2 KiB
Markdown
Raw Normal View History

# 深度风险扫描模块设计 (Risk Scan Module)
## 1. 业务目标
将单点硬规则风控(如:发票大于 500 元是否合规)升级为**图谱式全局风控**。Hermes 将利用大语言模型LLM的逻辑推理能力在海量历史数据中寻找隐藏的违规模式。
## 2. 核心扫描链路
本模块将作为一个独立的 Skill 被定时任务触发。
### 第一步:数据快照聚合
- **提取目标**:拉取状态为 `draft``submitted` 且最近 30 天内活跃的报销单,同时带出相关的发票明细。
- **降维处理**:为避免超出大模型的 Token 上下文限制,必须对单据信息进行降维。仅提取:`申请人、时间、地点、商户名、金额、报销类型` 形成精简的 CSV 或 JSON Lines 格式。
### 第二步:大模型批量推理 (LLM Batch Inference)
- **风险定义植入**:通过 System Prompt 将目前财务最头疼的几类风险定义给模型(如拆单、套现、虚假连号发票)。
- **执行方式**:将数据按“同部门”或“同地域”分块 (Chunking) 喂给大模型。
- **Prompt 示例**
```markdown
你是一个内控审计 Agent。以下是某部门近半个月的报销流水清单。
请找出其中是否存在:
1. 拆单行为(同人、同地点、连日、小额累加)
2. 聚众套现行为(不同人、同偏僻餐馆、同日极高额)
如果发现风险,请输出对应的单号集合以及你的推理过程。
```
### 第三步:风险标记与处置
- 解析大模型返回的结构化 JSON。
- 对被判定的高危单据,在主库中插入 `hermes_risk_report` 记录。
- **动作反馈**:如果该单据正处于 `submitted` 状态,并且得分极高(如虚假连号发票),可以通过 X-Financial 原有接口自动注入“退回”动作,并附加大模型的分析日志。
## 3. 防抖与自我迭代
- **扫描去重**:利用 `expense_claim.hermes_scanned_at` 防止已经出具过报告的单据被重复投入分析队列。
- **人工纠偏 (Human-in-the-loop)**:当财务在前端驳回 Hermes 的风险提示即认为没问题事件将被记录。Hermes 可通过夜间的反思任务优化下一次 Prompt 中的判定容忍度。