Files
X-Financial/document/development/hermes_agent/02_database_design.md
caoxiaozhu 50b1c3f9a9 feat: 增强规则资产管理与审计页面运行时调试
后端新增规则资产版本管理和规则文件 CRUD 接口,优化风险
规则生成模板执行和员工数据模型字段,知识库 RAG 增强本
地回退和文档提取能力,清理旧风险规则文件统一由生成引擎
管理,前端审计页面增加运行时调试面板和规则资产编辑交互,
补充单元测试覆盖。
2026-05-24 21:44:17 +08:00

47 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hermes 数据库表结构设计
为了支持后台异步任务的执行和长期记忆(风险标记、执行结果归档),我们需要在数据库中增加(或扩充)以下表结构。
## 1. 任务调度与执行表
### `hermes_task_config` (定时任务配置表)
用于管理所有的后台巡检和推送任务,支持动态调整频率与开关。
- `id`: string (UUID)
- `task_type`: string (enum: `global_risk_scan`, `weekly_expense_report`, `kb_validation`...)
- `cron_expression`: string (e.g., `0 2 * * *`)
- `is_enabled`: boolean (默认 True)
- `payload_template`: jsonb (预留参数,如扫描的时间窗口、特定部门过滤条件等)
- `updated_at`: datetime
### `hermes_task_execution_log` (任务执行日志表)
记录每次任务的执行状态,便于排错与溯源。
- `id`: string (UUID)
- `config_id`: string (外键,关联 `hermes_task_config`)
- `started_at`: datetime
- `completed_at`: datetime
- `status`: string (enum: `running`, `success`, `failed`)
- `result_summary`: string (执行结果的简要说明,如“扫描了 1500 条单据,发现 12 条高危”)
- `error_trace`: text (如果失败,存储错误堆栈)
## 2. 深度分析结果表
### `hermes_risk_report` (深度风险报告表)
用于存储 LLM 找出的深层逻辑风险。
- `id`: string (UUID)
- `claim_id`: string (外键,关联存疑的主单据 `expense_claim`)
- `execution_log_id`: string (外键,由哪次扫描任务产生的)
- `risk_level`: string (enum: `low`, `medium`, `high`, `critical`)
- `risk_type`: string (enum: `split_billing` 拆单, `collusion` 合谋, `policy_violation` 违规...)
- `risk_description`: text (大模型生成的自然语言报告,如“该单据与前天提交的单据存在拆分可能...”)
- `related_claim_ids`: jsonb (存储关联的同谋/相关单据 ID 列表,提供上下文线索)
- `status`: string (enum: `pending_review` 待人工复核, `confirmed` 已确认为风险, `dismissed` 已忽略)
## 3. 现有表的平滑改造
### 修改 `employee` 表 (员工信用分预留)
- **新增字段** `compliance_score`: int (默认 100由 Hermes 动态扣减或恢复,用于风控引擎调节对该员工的抽查率和宽容度)
### 修改 `expense_claim` 表 (风控标记)
- **新增字段** `hermes_scanned_at`: datetime (记录该单据上次被 Hermes 扫描的时间,防止重复扫描)
- **新增字段** `hermes_risk_flag`: boolean (快速判断该单子是否被挂载了 `hermes_risk_report`)