feat: 扩展风险规则体系、审批动态路由与预算中心列表化改造
- 新增 25+ 条风险规则(预算/报销/申请/通用类),完善风险规则模拟与反馈发布机制 - 引入费用审批动态路由、平台风险分级、预审与风险阶段管理 - 预算中心列表化改造,优化票据夹仪表盘与数字员工工作看板 - 新增 Hermes 风险线索收集器、Agent 链路追踪中心 - 扩展数字员工能力库(18 个领域 Skill)与交通费用自动预估 - 完善报销申请快速预览、权限控制与前端测试覆盖
This commit is contained in:
@@ -4,7 +4,9 @@
|
||||
|
||||
## 1. 功能一句话
|
||||
|
||||
以数字员工为后台执行入口,持续把财务业务数据转成行为画像、制度语义和风险观察,再通过图谱证据链、单据详情和风险看板提供可解释的风险判断。
|
||||
以数字员工为后台分析入口,持续把财务业务数据转成行为画像、制度语义和风险观察,再通过图谱证据链、单据详情和风险看板提供可解释的风险判断。
|
||||
|
||||
规则中心、审批和报销主流程仍由外层智能体流程负责调度;数字员工只消费事实、规则命中和反馈结果,生成后台分析、报告、知识库材料和待复核线索。
|
||||
|
||||
## 2. 背景与问题
|
||||
|
||||
@@ -16,7 +18,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
- 分析看板如果只从散表拼统计图,会成为展示型页面,不能反映算法效果。
|
||||
- 数字员工如果只做定时任务,会变成调度工具,不能形成核心壁垒。
|
||||
|
||||
本方案把核心能力定义为“财务行为图谱风险引擎”。它不是单一模型,而是一套闭环:事件沉淀、实体建图、画像基线、风险推理、人工反馈、规则发现。
|
||||
本方案把核心能力定义为“财务行为图谱风险引擎”。它不是单一模型,而是一套闭环:事件沉淀、实体建图、画像基线、风险推理、人工反馈、待复核线索归集。
|
||||
|
||||
## 3. 核心判断
|
||||
|
||||
@@ -78,7 +80,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
算法版本
|
||||
```
|
||||
|
||||
这会形成自有训练集、评测集和规则优化样本。竞品能复制算法框架,但复制不了这些被真实审批和财务人员校准过的样本。
|
||||
这会形成自有训练集、评测集和规则执行校准样本。竞品能复制算法框架,但复制不了这些被真实审批和财务人员校准过的样本。
|
||||
|
||||
第四层壁垒:人机共审行为数据。
|
||||
|
||||
@@ -92,7 +94,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
补件
|
||||
升级审批
|
||||
标记误报
|
||||
生成候选规则
|
||||
归集待复核线索
|
||||
```
|
||||
|
||||
这些反馈会反向影响规则质量、抽审比例、自动化门控和数字员工能力考核。越使用越贴近企业自己的财务控制风格。
|
||||
@@ -139,10 +141,10 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
### 4.2 非目标
|
||||
|
||||
- 第一版不做独立“大图谱中心”,避免做成展示型页面。
|
||||
- 不让大模型直接决定风险等级,大模型只参与语义抽取、解释生成和候选规则发现。
|
||||
- 不让大模型直接决定风险等级,大模型只参与语义抽取、解释生成和事实线索整理;不参与规则生成、改写或发布。
|
||||
- 不用画像自动惩罚员工,不给员工永久贴标签。
|
||||
- 不在员工技能详情中展示知识归集图谱;图谱结果只进入工作记录详情、单据风险详情或画像详情。
|
||||
- 不让数字员工自动上线规则;规则候选必须经过管理员审核。
|
||||
- 不让数字员工生成、改写或自动上线规则;规则变更只能由管理员在规则中心维护。
|
||||
|
||||
## 5. 用户与场景
|
||||
|
||||
@@ -178,7 +180,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
|
||||
- 数字员工运行是否成功。
|
||||
- 本次分析处理了多少数据、产出多少风险观察。
|
||||
- 候选规则是否有足够证据。
|
||||
- 待复核风险线索是否有足够事实和证据。
|
||||
- 是否需要调整技能、规则、制度知识或调度配置。
|
||||
|
||||
### 5.4 管理层
|
||||
@@ -201,7 +203,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
- 制度整理员工:把公司财务制度整理成条款、适用范围、费用类型、触发条件和引用关系。
|
||||
- 风险扫描员工:定期扫描新增单据、票据、供应商、审批链和画像偏离,生成风险观察。
|
||||
- 画像更新员工:定期更新员工、部门、供应商、费用类型画像和同类基线。
|
||||
- 规则发现员工:从历史退回、误报、漏报、制度变化和高频异常中生成候选规则。
|
||||
- 风险线索归集员工:从申请、报销、规则命中和人工反馈中归集待复核线索,不生成规则。
|
||||
|
||||
### 6.2 图谱体现方式
|
||||
|
||||
@@ -259,7 +261,7 @@ X-Financial 已经具备费用申请、报销、审批、规则中心、知识
|
||||
- 风险分布:按部门、费用类型、风险类型、供应商、员工职级分布。
|
||||
- 风险趋势:7 天 / 30 天风险走势、高风险占比、重复触发趋势、处理完成率。
|
||||
- 异常排行:风险最多部门、偏离基线最大员工、高频异常供应商、高频触发规则。
|
||||
- 算法效果:规则命中数、图谱异常命中数、人工确认率、误报率、候选规则数。
|
||||
- 算法效果:规则命中数、图谱异常命中数、人工确认率、误报率、待复核线索数。
|
||||
|
||||
风险看板必须从 `RiskObservation` 聚合,不直接从散表临时拼图表。
|
||||
|
||||
@@ -437,7 +439,7 @@ confirmed_by_feedback 由人工反馈确认
|
||||
图谱引擎:canonical node + whitelisted edge 构造证据路径
|
||||
风险观察:ontology fields + evidence path 输出可解释结论
|
||||
风险看板:按 ontology scenario / expense_type / risk_signal 聚合
|
||||
数字员工:只能产出本体可识别的候选风险信号和候选规则
|
||||
数字员工:只能产出本体可识别的事实、规则命中、待复核风险线索和证据引用
|
||||
```
|
||||
|
||||
当本体置信度不足时,风险图谱必须降级:
|
||||
@@ -602,7 +604,7 @@ $$
|
||||
|
||||
### 8.4 人工反馈校准
|
||||
|
||||
人工反馈不直接覆盖算法,但会影响后续权重和候选规则优先级:
|
||||
人工反馈不直接覆盖算法,但会影响后续权重和待复核线索优先级:
|
||||
|
||||
$$
|
||||
confirmed\_rate = \frac{confirmed}{confirmed + false\_positive + ignored}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
- [x] 为风险观察补充 `ontology_parse_id`、`ontology_version`、`domain`、`scenario`、`intent`、`ontology_entities_json`、`risk_signals_json` 和 `canonical_subject_key`。[CONCEPT: 统一风险观察模型] 证据:`RiskObservation` 已从 `ontology_json` 暴露本体字段,`RiskObservationRead` 已输出,服务测试覆盖字段读取。
|
||||
- [x] 为风险观察增加必要索引:主体、单据、风险类型、等级、状态、来源、创建时间。[CONCEPT: 技术验收] 证据:`RiskObservation.__table_args__` 与字段索引覆盖主体、单据、等级、状态、信号、来源和时间。
|
||||
- [x] 设计对象中心财务事件日志模型,把申请、预算占用、票据上传、审批、退回、付款、归档、复盘统一为可回放事件。[CONCEPT: 不可复制壁垒设计] 证据:`process_mining.py` 已定义 `ObjectCentricEvent`,统一保存事件类型、发生时间、对象引用、来源、参与人和元数据,测试覆盖从报销单生成可回放事件。
|
||||
- [x] 设计风险观察反馈池字段,记录人工采纳、驳回、改写、退回、补件、升级审批、误报和候选规则来源。[CONCEPT: 不可复制壁垒设计] 证据:`RiskObservationFeedback` 已通过兼容属性暴露 `decision/candidate_rule_source/confidence_score/escalation_target/supplement_required`,测试覆盖候选规则反馈元数据。
|
||||
- [x] 设计风险观察反馈池字段,记录人工采纳、驳回、改写、退回、补件、升级审批、误报和线索来源。[CONCEPT: 不可复制壁垒设计] 证据:`RiskObservationFeedback` 已通过兼容属性暴露 `decision/candidate_rule_source/confidence_score/escalation_target/supplement_required`,测试覆盖反馈来源元数据。
|
||||
- [x] 设计算法回放集模型,绑定历史单据、本体版本、规则版本、算法版本和反馈标签。[CONCEPT: 不可复制壁垒设计] 证据:`replay.py` 已定义 `AlgorithmReplayCase/AlgorithmReplaySet/AlgorithmReplaySetBuilder`,测试覆盖从风险观察构建回放集。
|
||||
|
||||
## 3. 后端服务
|
||||
@@ -98,7 +98,7 @@
|
||||
- [x] 将风险扫描和员工画像巡检注册到数字员工的员工技能列表。[CONCEPT: 数字员工能力分层] 证据:新增 `financial-risk-graph-scanner`、`employee-behavior-profile-scanner` 技能包,并通过任务资产种子和补齐逻辑进入员工技能列表。
|
||||
- [x] 员工技能详情的立即运行按技能类型调用真实后端任务。[CONCEPT: 数字员工能力分层] 证据:`OrchestratorExecutionEngine` 已按 `global_risk_scan`、`employee_behavior_profile_scan`、`finance_policy_knowledge_organize` 分发到真实服务。
|
||||
- [x] 新增或扩展画像更新员工,定期更新员工、部门、供应商、费用类型基线。[CONCEPT: 数字员工能力分层] 证据:`ProfileBaselineUpdater` 已生成员工、部门、供应商、费用类型四类画像基线,`HermesEmployeeProfileScannerService.scan_employee_profiles()` 已返回 `baseline_summary`;`pytest --ignore=.venv-ocr312 tests/test_risk_graph_profile_baselines.py tests/test_hermes_employee_profile_baselines.py -q` 通过。
|
||||
- [x] 新增规则发现员工候选输出,候选规则必须带证据、来源和置信度。[CONCEPT: 数字员工能力分层] 证据:`rule_discovery.py` 已定义 `CandidateRiskRuleDiscovery` 和 `CandidateRiskRule`,输出包含证据、来源、置信度和候选状态;数字员工任务与技能已注册为“风险规则候选发现”。
|
||||
- [x] 新增风险线索归集员工输出,线索必须带事实、规则命中、证据来源和人工复核标记。[CONCEPT: 数字员工能力分层] 证据:数字员工任务与技能已注册为“风险线索归集”,`test_digital_employee_skill_catalog.py` 已锁定不输出候选规则或自动发布语义。
|
||||
- [x] 数字员工运行完成后写入处理范围、处理数量、风险观察数量和失败原因。[CONCEPT: 数字员工工作记录详情] 证据:`HermesScheduler` 已写入风险图谱巡检摘要,失败仍沿用执行日志 `error_trace`。
|
||||
- [x] 确认 UI 上继续使用“数字员工 / 员工技能 / 工作记录”等业务命名,不在普通用户界面暴露内部实现名。[CONCEPT: 用户与场景] 证据:`DigitalEmployeesView.vue` 页签文案为“员工技能 / 工作记录”,普通界面未展示内部 Hermes 名称。
|
||||
|
||||
@@ -125,16 +125,16 @@
|
||||
- [x] 增加风险分布图:部门、费用类型、风险类型、供应商、员工职级。[CONCEPT: 分析看板风险看板] 证据:`RiskObservationDashboard.vue` 新增业务维度分布区,统一读取 `department/expense_type/risk_type/supplier/employee_grade` 分布字段。
|
||||
- [x] 增加风险趋势图:7 天 / 30 天走势、高风险占比、处理完成率。[CONCEPT: 分析看板风险看板] 证据:`RiskDailyTrendChart.vue` 已展示风险观察与高风险趋势;风险看板时间窗口支持 7/30/90 天切换,处理完成率由闭环效果区承接。
|
||||
- [x] 增加异常排行:部门、员工、供应商、规则、费用类型。[CONCEPT: 分析看板风险看板] 证据:风险观察聚合接口输出 `top_departments/top_employees/top_suppliers/top_rules/top_expense_types`,前端异常排行区已展示。
|
||||
- [x] 增加算法效果:规则命中数、图谱异常命中数、人工确认率、误报率、候选规则数。[CONCEPT: 分析看板风险看板] 证据:风险看板已展示平均风险分、人工确认数、误报样本和候选规则数,规则/图谱来源通过来源分布体现。
|
||||
- [x] 增加算法效果:规则命中数、图谱异常命中数、人工确认率、误报率、待复核线索数。[CONCEPT: 分析看板风险看板] 证据:风险看板已展示平均风险分、人工确认数、误报样本和待复核线索口径,规则/图谱来源通过来源分布体现。
|
||||
- [x] 风险看板所有数据通过风险观察聚合接口读取,不直接拼接业务散表。[CONCEPT: 技术验收] 证据:后端已提供 `/api/v1/risk-observations/dashboard` 作为统一聚合源。
|
||||
|
||||
## 9. 规则与反馈闭环
|
||||
|
||||
- [x] 规则中心执行结果写入风险观察池或与风险观察建立关联。[CONCEPT: 统一风险观察模型] 证据:`RiskObservationService.upsert_platform_risk_flags()` 已接收规则中心风险命中,报销提交预审会同步写入风险观察池。
|
||||
- [x] 风险观察支持人工确认、误报、忽略、已处理等反馈。[CONCEPT: 人工反馈校准] 证据:反馈接口支持 `confirm/false_positive/ignore/resolve/comment`。
|
||||
- [x] 规则发现员工根据反馈生成候选规则,不直接上线。[CONCEPT: 非目标] 证据:`CandidateRiskRuleDiscovery.discover_from_feedback()` 只输出 `status == "candidate_review"` 的候选规则,技能文件要求 `auto_publish=false`,测试覆盖不直接上线。
|
||||
- [x] 风险线索归集员工根据反馈整理待复核线索,不生成、不改写、不上线规则。[CONCEPT: 非目标] 证据:技能配置统一写入 `writes_rules=false`、`role_boundary` 和 `allowed_outputs`,目录测试覆盖不再注册候选规则技能名或规则优化输出格式。
|
||||
- [x] 风险观察详情展示反馈历史和当前处理状态。[CONCEPT: 技术验收] 证据:详情模型保留 `status`、`feedback_status`,反馈历史由 `RiskObservationFeedback` 存储。
|
||||
- [x] 风险看板展示人工确认率、误报率和候选规则数量。[CONCEPT: 分析看板风险看板] 证据:聚合接口已输出 `confirmation_rate` 和 `false_positive_rate`;候选规则数待规则发现员工接入后补充。
|
||||
- [x] 风险看板展示人工确认率、误报率和待复核线索数量。[CONCEPT: 分析看板风险看板] 证据:聚合接口已输出 `confirmation_rate` 和 `false_positive_rate`;待复核线索口径由风险观察与人工复核状态聚合。
|
||||
|
||||
## 10. 测试与验证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user