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

2.4 KiB
Raw Blame History

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)