feat: 扩展风险规则体系、审批动态路由与预算中心列表化改造

- 新增 25+ 条风险规则(预算/报销/申请/通用类),完善风险规则模拟与反馈发布机制
- 引入费用审批动态路由、平台风险分级、预审与风险阶段管理
- 预算中心列表化改造,优化票据夹仪表盘与数字员工工作看板
- 新增 Hermes 风险线索收集器、Agent 链路追踪中心
- 扩展数字员工能力库(18 个领域 Skill)与交通费用自动预估
- 完善报销申请快速预览、权限控制与前端测试覆盖
This commit is contained in:
caoxiaozhu
2026-06-01 17:07:14 +08:00
parent 7989f3a159
commit 92444e7eae
285 changed files with 25075 additions and 2986 deletions

View File

@@ -0,0 +1,133 @@
# 数字员工能力库扩展概念文档
更新日期2026-05-31
## 功能一句话
把数字员工从少量后台任务扩展为覆盖事实抽取、规则命中分析、资产积累、报告生成和人工复核辅助的企业级后台分析能力库。
## 背景与问题
当前员工技能数量偏少,只有制度整理、风险图谱巡检、员工画像巡检和少量复核辅助能力。页面观感更像技术演示,不像完整的财务数字员工能力矩阵。
需要把已有风险图谱、制度知识、画像基线、反馈池、回放评测等算法资产拆成用户能理解的员工技能,让列表规模、分类结构和详情内容都更完整。
同时必须收敛数字员工边界:数字员工不是风险专家,也不是规则制定者。风险口径、规则内容、制度解释和最终判断由人负责;规则中心执行归属外层智能体流程,数字员工只负责读取事实、规则命中和反馈结果,生成后台分析、报告、知识库材料和待人工复核线索。
## 目标
- 员工技能数量扩展到不少于 16 个。
- 保持四类技能:积累、升级、整理、评估。
- 每个技能都有名称、描述、技能包、分类、执行场景、输入、输出、是否定时、是否写入工作记录。
- 新增技能进入资产种子和运行时补齐逻辑,已有数据库启动后也能自动补齐。
- 新增技能包落在 `server/src/app/skills/domain`,便于后续同步到数字员工运行侧。
- 明确技能边界:输出事实、规则命中和待人工确认线索,不输出正式规则结论或规则变更裁判。
## 非目标
- 本轮不引入新的数据库结构变更。
- 本轮不要求所有新增技能都接入真实执行器。
- 本轮不复制竞品术语或页面包装,只做 X-Financial 自有能力命名。
- 本轮不让数字员工总结风险规则、发明新规则、修改规则中心或替代人工确认风险。
## 用户与场景
- 风控管理员:查看评估类和升级类技能,理解规则命中分析、异常线索、人工复核样本和回放评测能力。
- 财务制度管理员:查看整理类技能,维护制度条款、政策口径和规则命中样本。
- 数据治理人员:查看积累类技能,理解员工、部门、供应商和反馈样本如何沉淀。
- 系统管理员:配置定时计划、查看工作记录和执行结果。
## 功能能力
完整员工技能库按四类组织:
- 整理:财务制度、制度条款、政策口径、规则命中样本。
- 积累:员工画像、部门基线、供应商画像、误报样本、反馈样本。
- 评估:风险图谱、多凭证一致性、时空一致性、预算超标、供应商异常关系。
- 升级:风险线索归集、算法回放、制度引用缺口提示和人工复核材料整理。
每个技能需要提供:
- `skill_name`:技能包目录名。
- `skill_category`:积累、升级、整理、评估之一。
- `task_type`:由任务 code 派生。
- `schedule` / `cron_expression`:默认定时计划。
- `input_sources`:输入来源。
- `output_format`:产出格式。
- `writes_work_record`:是否产出工作记录。
- `execution_strategy`:真实执行、复用现有扫描器或定义先行。
- `role_boundary`:规则由人定义、风险由人确认、主流程由外层智能体执行,数字员工只做后台分析、报告生成和知识沉淀。
- `allowed_outputs`:只允许输出 `facts``rule_hits``risk_clues``evidence_refs``human_review_required` 等受控字段。
## 数字员工边界
数字员工允许做三件事:
- 事实抽取:从申请单、报销单、票据、附件、审批记录中抽取金额、时间、地点、人员、供应商、票据号、申请关系等事实。
- 规则命中分析:读取外层智能体流程已经产生的规则命中结果、字段依据和原始证据,用于后台报告与复核材料整理。
- 线索归集:基于事实和规则命中输出“待人工复核”的潜在线索,不能把线索升级为正式风险结论。
数字员工禁止做四件事:
- 不总结或发明风险规则。
- 不修改、发布、删除规则中心规则。
- 不把潜在线索判定为最终违规结论。
- 不替代财务、风控或管理员进行制度解释和风险确认。
## 方案设计
### 后端
-`agent_foundation_constants.py` 增加新增任务 code 和分类映射。
-`agent_foundation_digital_employee_tasks.py` 增加运行时任务规格。
- 在初始种子流程完成基础任务 flush 后,调用运行时补齐逻辑,保证新库完整落库。
- 新增技能包目录和 `SKILL.md`,内容包含功能说明、执行时机、输入输出和边界。
- 将容易越权的“规则发现、规则模板整理、制度缺口优化”收敛为“风险线索归集、规则命中样本整理、制度引用缺口提示”。
### 前端
前端列表已按资产接口读取任务类资产,不需要新增页面结构。新增任务落库后会自动进入员工技能列表,并使用已有筛选、分类和详情展示。
### 算法与公式
本轮主要扩展能力目录和角色边界,不新增评分公式。后续每个技能接入真实算法时,再在对应算法文档中补充公式。
数字员工输出的线索置信度只能作为排序依据,不能作为最终风险裁判:
$$
risk\_clue = f(facts, rule\_hits, evidence\_quality)
$$
其中 `facts` 来自申请与报销事实,`rule_hits` 来自外层智能体流程或规则中心已经产生的命中结果,`evidence_quality` 表示证据完整度。数字员工不触发规则主流程,最终是否构成风险由人工复核或规则中心既有处置流程决定。
### 后台分析闭环
风险线索归集不是规则生产流程,而是后台分析闭环的一环:
- 工作记录详情展示本次归集的事实、规则命中、待复核线索和近期反馈样本。
- 风险看板展示待复核线索数和反馈样本数,用于观察后台分析是否形成可复盘资产。
- 人工反馈仍写入风险观察反馈池,数字员工只读取反馈池做线索排序、复核材料整理和后续报告生成。
## 测试方案
- 单元测试:校验数字员工运行时任务规格数量、分类覆盖、技能包目录存在、任务 code 唯一。
- 配置测试:校验每个任务配置都包含 `skill_name``output_format``skill_category_options`
- 容器验证:在 `x-financial-main:/app/server` 运行定向测试。
- 手工验收:进入数字员工员工技能列表,确认技能数量和分类明显完整。
- 接口验收:风险看板接口返回 `risk_clue_count``feedback_sample_count`,工作记录详情能展示风险线索归集的反馈样本摘要。
## 指标与验收
- 员工技能总数不少于 17 个。
- 四类分类都有技能。
- 新增技能包全部存在 `SKILL.md`
- 定向测试通过。
- 风险看板不再展示候选规则指标,改为待复核线索和反馈样本。
- 不引入数据库迁移和破坏性变更。
## 风险与开放问题
- 新增技能中部分为“定义先行”,立即运行时需要后续逐步接入真实执行器。
- 如果用户希望每个技能都能立即产出真实结果,需要继续拆分执行服务和工作记录产物。
- 已接入风险线索归集真实执行器,后续应继续把多凭证、时空、预算、供应商异常从风险图谱主引擎中拆成独立算法模块。
- 若技能命名或说明再次出现“数字员工承担规则主流程、规则发现、规则优化、自动总结风险”等表述,应优先改为读取规则命中结果、事实、线索、复核材料等受控表述。

View File

@@ -0,0 +1,56 @@
# 数字员工能力库扩展 TODO
更新日期2026-05-31
## 1. 调研与契约
- [x] 复核当前员工技能数量、分类和技能包目录。[CONCEPT: 背景与问题] 证据:当前已有基础技能包:制度整理、风险图谱巡检、员工画像巡检、风险线索归集。
- [x] 定义完整能力矩阵,覆盖积累、升级、整理、评估四类。[CONCEPT: 功能能力] 证据:`CONCEPT.md` 已列出 17 个目标技能。
## 2. 后端资产
- [x] 增加新增数字员工任务 code 和分类映射。[CONCEPT: 后端] 证据:`agent_foundation_constants.py` 已新增 13 个任务 code`DIGITAL_EMPLOYEE_TASK_CATEGORY_MAP` 覆盖四类分类。
- [x] 增加运行时任务规格,保证已有数据库可自动补齐新增员工技能。[CONCEPT: 后端] 证据:`agent_foundation_digital_employee_tasks.py` 已扩展到 16 个运行时任务规格,新增技能均包含 `skill_name/input_sources/output_format/execution_strategy`
- [x] 调整初始种子流程,保证空库初始化时也能落齐完整员工技能库。[CONCEPT: 后端] 证据:`agent_foundation_asset_seed.py` 在基础资产 `flush` 后调用 `_upsert_runtime_digital_employee_tasks()`,空库初始化会补齐完整运行时技能。
## 3. 技能包
- [x] 新增制度条款、政策口径、规则命中样本等整理类技能包。[CONCEPT: 功能能力] 证据:已新增 `finance-policy-clause-extractor``expense-policy-alignment``rule-execution-case-organizer` 技能包。
- [x] 新增部门基线、供应商画像、误报样本、反馈样本等积累类技能包。[CONCEPT: 功能能力] 证据:已新增 `department-expense-baseline-accumulator``supplier-risk-profile-accumulator``false-positive-sample-accumulator``risk-feedback-sample-accumulator` 技能包。
- [x] 新增多凭证、时空、预算、供应商关系等评估类技能包。[CONCEPT: 功能能力] 证据:已新增 `multi-evidence-consistency-evaluator``travel-spatiotemporal-consistency-evaluator``budget-overrun-precontrol-evaluator``supplier-abnormal-relation-evaluator` 技能包。
- [x] 新增回放评测、制度引用缺口提示等升级类技能包。[CONCEPT: 功能能力] 证据:已新增 `risk-algorithm-replay-evaluator``policy-reference-gap-hinter` 技能包。
## 4. 测试与验收
- [x] 增加数字员工技能目录测试,校验任务 code 唯一、分类覆盖、技能包存在。[CONCEPT: 测试方案] 证据:新增 `tests/test_digital_employee_skill_catalog.py` 覆盖任务数量、分类、配置和技能包。
- [x] 在 Docker 容器 `x-financial-main:/app` 运行定向测试60s 内完成。[CONCEPT: 测试方案] 证据:`docker exec x-financial-main bash -lc "cd /app && timeout 60s /tmp/x-financial-server-venv/bin/python -m pytest server/tests/test_digital_employee_skill_catalog.py -q"` 通过3 个测试通过。
- [x] 确认最终员工技能总数不少于 17 个,四类分类都有技能。[CONCEPT: 指标与验收] 证据:测试断言运行时 16 个技能加 `整理公司财务知识制度` 共 17 个,分类覆盖积累、升级、整理、评估。
## 5. 边界收敛
- [x] 调整概念文档,明确数字员工不总结风险规则、不发明规则、不替代人工确认风险。[CONCEPT: 数字员工边界] 证据:`CONCEPT.md``hermes-risk-graph-algorithm/CONCEPT.md` 已把数字员工边界收敛为事实抽取、规则命中结果读取、后台分析和待复核线索归集。
- [x] 将“风险规则候选发现、风险规则模板整理、制度缺口与规则变更建议”收敛为事实、规则命中和人工复核辅助类技能。[CONCEPT: 功能能力] 证据:运行时技能已改为 `risk-clue-collector``rule-execution-case-organizer``policy-reference-gap-hinter`
- [x] 在技能配置中增加 `role_boundary``allowed_outputs`,约束输出只能是事实、规则命中、线索和证据引用。[CONCEPT: 数字员工边界] 证据:`agent_foundation_digital_employee_tasks.py` 为运行时技能配置写入 `role_boundary``allowed_outputs``writes_rules=false`
- [x] 更新技能包 Markdown禁止数字员工发布、改写、总结规则风险线索必须待人工复核。[CONCEPT: 后端] 证据:`risk-clue-collector``rule-execution-case-organizer``policy-reference-gap-hinter` 及兼容别名技能包均已声明禁止生成、改写或发布规则。
- [x] 增加目录测试,防止数字员工技能重新出现自动发布、规则变更、候选规则生成等越权语义。[CONCEPT: 测试方案] 证据:`test_digital_employee_skills_do_not_cross_rule_governance_boundary` 已断言旧技能名和危险输出格式不再进入数字员工目录。
## 7. 流程边界收敛
- [x] 明确规则中心命中结果归属外层智能体流程,数字员工只消费规则命中结果。[CONCEPT: 数字员工边界] 证据:`CONCEPT.md` 已改为“规则命中分析”,并声明数字员工不触发规则主流程。
- [x] 更新技能与配置文案,禁止数字员工被描述为规则主流程处理器。[CONCEPT: 后端] 证据:`agent_foundation_digital_employee_tasks.py``risk-clue-collector``rule-execution-case-organizer` 及兼容别名技能包均已改为后台分析和复核材料口径。
- [x] 增加测试,防止 `role_boundary` 再次出现规则主流程越界表述。[CONCEPT: 测试方案] 证据:`test_digital_employee_runtime_specs_build_display_ready_config` 已覆盖主流程归属和禁止数字员工承担规则主流程职责。
## 6. 风险线索归集真实执行器
- [x] 新增 `HermesRiskClueCollectorService`,读取申请/报销事实、规则命中、风险观察和人工反馈,输出 `risk_clue_review_packet`。[CONCEPT: 算法与公式] 证据:`hermes_risk_clue_collector.py` 输出 `facts/rule_hits/risk_clues/evidence_refs/human_review_required`
- [x]`risk_clue_collect` 接入数字员工立即运行分发。[CONCEPT: 后端] 证据:`orchestrator_execution.py` 已新增 `digital_employee.risk_clue.collect` 工具调用,`test_schedule_digital_employee_task_runs_real_service` 覆盖分发。
- [x]`risk_clue_collect` 接入 Hermes 定时调度。[CONCEPT: 后端] 证据:`hermes_scheduler.py` 已新增 `risk_clue_collect` 分支并写入执行摘要。
- [x] 工作记录详情识别风险线索归集产物,展示事实、规则命中、待复核线索和证据引用计数。[CONCEPT: 前端] 证据:`digitalEmployeeWorkRecordsModel.js``DigitalEmployeeRunProducts.vue` 已支持 `risk_clue` 产物,前端测试覆盖。
- [x] 增加执行器测试,验证不写规则、不输出候选规则、线索必须待人工复核。[CONCEPT: 测试方案] 证据:`test_hermes_risk_clue_collector.py` 通过,断言 `writes_rules=false``human_review_required=true` 和无 `candidate_risk_rules/auto_publish`
## 8. 后台分析闭环
- [x] 风险线索归集产物补充观察键、反馈状态和近期反馈样本摘要,方便工作记录详情定位复核上下文。[CONCEPT: 后台分析闭环] 证据:`hermes_risk_clue_collector.py` 输出 `observation_key/feedback_status/next_action/feedback_summary``DigitalEmployeeRunProducts.vue` 展示反馈样本。
- [x] 风险看板聚合接口补充 `risk_clue_count``feedback_sample_count`,把数字员工后台分析结果接入看板指标。[CONCEPT: 后台分析闭环] 证据:`RiskObservationDashboardRead``RiskObservationService.summarize_dashboard()` 已输出线索数和反馈样本数。
- [x] 风险看板前端移除“候选规则”指标,改为“待复核线索”和“反馈样本”。[CONCEPT: 指标与验收] 证据:`RiskObservationDashboard.vue` 的算法闭环效果区已展示 `待复核线索/反馈样本`,前端测试断言不再出现候选规则。
- [x] 增加后端与前端定向测试,并在 Docker 容器内验证核心后端测试通过。[CONCEPT: 测试方案] 证据:`pytest` 定向测试 8 个通过,`node --test` 前端定向测试 8 个通过。