跳转到主要内容

财务风险分析系统详细设计与实施方案

依据 0924 需求文档编制的多智能体财务风险分析 PoC 详细设计与实施方案:总体架构、分析流水线、数据层、规则库与判定引擎、议题聚合与评分、图表体系、四类 LLM Agent 协作、前端页面、样本数据与里程碑验收,含三张交互式图表。

依据《财务风险分析系统需求文档(0924)》编制。本页是多智能体财务分析系统 PoC 的详细设计与实施方案——先跑通"数据层归集 → 规则判定 → 议题聚合 → 评分分档 → 图表与判读生成 → 结论文案生成 → 质量检查"七环节全链路,为行内落地探路。需求口径详见10 财务风险分析章。

一、定位与范围

目标:交付一个可运行的 PoC——样本公司数据 + 种子规则集 + 真实 LLM 调用,验证多智能体协作架构、判定可复算性、五条硬约束的可行性。不受行内技术栈约束,但选型与行内《综合智慧信贷 AI 架构方案》同构,验证结论可直接迁移。

PoC 要验证的四个核心命题:

  1. 判定、聚合、评分全部由代码计算,每条结论可追溯到实测数值、阈值档位与规则编号;
  2. LLM 只承担叙述与判读(判读三段、六项结论文案、核查清单),在五条硬约束下输出稳定 JSON;
  3. 人工改判 → 档位即时刷新 →「大模型重算」→ 文案重写,这条核心交互链闭环;
  4. 八条一票否决触发时评级被覆盖为「不建议准入」,且不停止其余规则执行。

明确不做(落地阶段再补):信贷系统 SSO 与带参跳转、结论回写审批单(0924 待对齐点⑨在 PoC 中搁置,改为页面展示 + markdown/JSON 导出)、企查查接口、影像平台 OCR。外部工商舆情在数据层保留命名空间、以 mock 数据注入,未接入时如实显示「未接入」,不得显示为「未触发」。

二、总体架构

四层:评审前端(Vue3)、FastAPI 确定性服务层、LangGraph 多智能体层、数据与模型接入层。核心原则一句话:确定性计算走代码、Agent 不承担口径决策、LLM 只做叙述与判读并受硬约束。

说明

图内支持缩放、语义视图、关系追踪与 PNG/SVG 导出。

全屏打开 ↗

关键设计决策(逐项经评审确认):

决策点结论理由
交付形态可运行 PoC,跑通七环节全链路为落地探路,验证核心命题后再投入生产工程
规则库自造种子规则集(80–150 条起步)969 条无机器可读版本;17 字段结构全量落地,数据驱动可增量扩充
多智能体形态流水线为骨 + 四类专项 Agent判定可复算是审计底线;Agent 只出现在编排、判读、结论、质检四个位置
技术栈Python 3.12+ / FastAPI / SQLModel / SQLite;LangGraph 编排与行内 AI 架构方案选型同构;SQLite 零运维适配 PoC
LLM 接入OpenAI 兼容网关,配置化 base_url/key/model;录制回放模式开发接商用 API,落地换行内 Qwen 网关只改配置;回归测试不烧 token
样本数据两家虚构制造业公司 × 5 年年报健康厂验证通过路径,藏雷集团验证一票否决与图多议题多路径
UI 范围全页面骨架 + 总览页十版块完整验证「人工改判 → 重算 → 图表重渲染」核心交互链
计数口径页面显示真实条数,不硬编码 969969 是目标态口径;「阅读路径移出清单」「不适用不计分母」等比例关系在种子集上同构复现

三、分析流水线与重算回路

七环节中前四环(归集、判定、聚合、评分)与图表数据全部是确定性代码;后三环(判读、结论、质检)由 LLM Agent 承担,编排 Agent 负责调度。人工改判从评审复核泳道回流:改判保存 → 确定性结果即时重算 → 点「大模型重算」→ 判读与文案重写(只重写文案,不改档位)。

全屏打开 ↗

八条否决闸在评分后并行判定:触发即在结果上打覆盖位(结论变为「不建议准入」),但流水线继续走完——评审仍需要完整的判定明细;人工推翻必须填理由并留痕。

四、数据层设计

七个命名空间落为独立取数接口,规则只能从这里取数、不允许写死数字:

命名空间存储说明
年报科目原值facts 表(公司 × 期间 × 科目 × 金额,统一万元)三表主体科目 + 附注明细
派生指标派生定义表 + 现算口径全系统唯一,如现金转换周期恒为「应收天数+存货天数−应付天数」
分季度数据quarterly 表识别年末利润塌陷等季度分布异常
母公司报表科目parent_facts 表母子背离核对(F42)
外部工商舆情external_records 表mock 注入;缺时显示「未接入」
行业均值industry_avg 表22 行业小类 × 板块 × 14 指标,驱动 10 条行业比较规则
公司画像companies 表客户性质(上市/集团,驱动适用对象层)、行业小类、增值税率

两家样本公司(5 年年度序列 + 附注 + 分季度 + 母公司报表 + 舆情 + 所在行业均值):

  • 健康厂:数据干净、少数触发、图少议题少——验证通过路径、低风险分档、「未披露」中性显示;
  • 藏雷集团:预埋非标审计意见(一票否决)、存贷双高(F03 存贷利差)、应收与收入剪刀差(F21)、其他应收款长账龄占比(F09)、净现比持续低于 0.5(F38)、四季度利润塌陷(F19)——验证否决覆盖、图多议题多、退回重写路径。

五、规则库与判定引擎

17 字段结构全量落地(编号、风险域、检查项、计算口径、阈值、判定、实测依据、优先级、实测标题等),种子集构成策略:

  1. A.01–A.38 图规格反推:38 张图点名的约 150 个 U-XXXX 规则优先编入,阈值直接取图规格(如现金短债比黄 1 / 红 0.5、有息负债率黄 40% / 红 60%、应收剪刀差黄 5pp / 红 20pp);
  2. 勾稽恒等式:资产=负债+权益等(IDENT,1% 容差);近似勾稽如「销售收现 ≈ 营业收入×(1+增值税率)」(偏离 10pp 判关注、20pp 判重点关注;跳变 15pp/30pp;仅两期数据只判偏离);
  3. 八条否决:自动三条(货币资金五类反常、非标审计意见、现金流肖像排除型)+ 待确认三条(立待办)+ 未接入两条(如实显示);
  4. 行业比较 10 条:5 条有兜底(无可比样本退自身近三年均值、至少三期),5 条无兜底缺数判「数据不足」。

覆盖约束:10 个风险域每域 ≥5 条、代表事实域每域 ≥2 条、RATIO/IDENT/STATE/COUNT/NOSCORE 五形态齐备、P0/P1/P2 三级齐备。

判定引擎:自建受限表达式语言——只允许白名单函数(prev 取上期、yoy 同比、share 占比、ratio 比值、streak 连续期数、avg3y 近三年均值、industry 行业均值等),编译为 AST 解释执行,不能调用任意代码。每条规则输出:判定(重点关注/关注/通过/数据不足/不适用)+ 实测依据(算式与科目金额,可对上计算口径)。四层筛选(适用对象、数据可得性、业务前置、规则类型)在执行前收窄规则集,不适用条目不计分母、不占清单。

六、议题聚合与评分

  • 议题聚合:按 44 事实域(种子集覆盖约 15 个代表域)聚合,同域触发规则合并为一个议题,议题卡标明「本议题同时触发 N 条规则,已合并计为 1 项」。严重度取组内最重判定;优先级取实际判了重点关注的那条规则的优先级(不取全组最高,防止 P1 重判从 P0 轻判借权重)。
  • 评分三轴取中位数:重大问题数(必查项重点关注议题数)、问题密度(触发议题占已判定规则比例)、加权分(重点关注 P0=6/P1=3/P2=1;关注 P0=2/P1=1/P2=0.4)。三轴中位数映射极高/高/中/低四档。
  • 否决覆盖:八条否决独立判定位,优先级高于评分,触发即结论覆盖为「不建议准入」。

七、图表体系

38 条图表定义全部落为数据驱动 spec(事实域、图型、序列、序列取数口径、阈值带、读法文本),序列只允许引用数据层命名空间。渲染层:Vue3 + ECharts 封装,折线阈值带用 markArea(黄区/红区,双向阈值都渲染)、阈值线参与纵轴取值范围。

  • 出图条件(每次渲染重算):该事实域至少一条规则判重点关注或关注(按人工复核后状态计)+ 落在触发最多的维度页(触发数相同取规则数多的,再相同按导航顺序)+ 至少一条序列取得到非空非零的数;
  • 页内排序:按 P0 触发数、重点关注数、关注数依次降序;
  • 图下判读三行由程序现算:最新读数与上期对比(有阈值带的加一句相对阈值线位置)、本域触发条数与最重规则(可点击跳转规则库)、规则库通用读法(标「读法」);
  • 8 个无数值序列的事实域(对外担保、关联交易等)不出图;渲染验证选 12–15 张代表图,其余 38 条定义 correctness 由 spec 单测保证。

八、多智能体设计

全屏打开 ↗

Agent输入输出关键约束
编排分析请求(custId, period)或重算请求七环节调度、状态流转、退回重写驱动不产出结论;LangGraph StateGraph + SQLite checkpointer
判读 ×N单个议题:触发规则、实测、阈值、风险指向、处置动作三段判读:归因 → 定性 → 处置按议题并行 fan-out(并发上限可配);归因首句三级回落:实测结论句 → 计算口径展开 → 不写首句
结论3.10.2 九类事实:公司信息、评级与档位、否决状态、指标卡、主营构成、舆情摘要、人工判定记录、全部风险议题固定 JSON:标题、行动建议、正文段落数组、总体判断、授信六项、核查清单五条硬约束写入系统提示词
质检结论 JSON + 输入事实集通过 / 不合格(附违规项)三道校验以程序为主:档位与文案一致、文案数字必须可在输入事实集中溯源、JSON Schema 校验

五条硬约束:只用给出的事实和数字;人工判定优先于系统原判定;授信六维文案必须与系统档位一致;触发重点关注事项时结论必须是不建议准入;只输出固定字段的 JSON 对象。质检不过由编排退回重写(附违规项),最多三次;仍不过则降级为模板文案并标注「模型生成未通过质检」——禁止带病发布。

LLM 网关:OpenAI 兼容抽象层,RECORD/REPLAY 两种模式——录制模式把 (模型, 提示词哈希) → 响应存入 fixtures;回放模式直接命中缓存,回归测试零 token、结果可复现。温度取低值并使用结构化输出。

九、前端设计

路由页面PoC 范围
/总览页十版块全做:评级横幅(含否决覆盖提示)、核心结论正文、舆情摘要、授信建议表、放款前核查清单、核心指标卡(四类核心 15 张 + 大额科目)、主营概览、各域结论一览、重点关注项状态表、风险项清单(一二级卡片)
/domain/:code十个风险域页共用模板:域头(规则数/必查数/判定计数)、结论两行、图表区、触发规则明细
/rules规则库页全功能:按域/类型/判定/关键词筛选、17 字段展开、人工改判表单(改判 + 实测值 + 核查说明,留痕)、顶部「大模型重算」按钮
/opinion舆情核查页mock 数据:舆情时间线 + 外部信息族六条必查规则
/guide阅读指引 + 场景筛选轻量版:阅读动线清单 + 八场景过滤条(只过滤清单不改评级)

分析任务为长任务(规则数百条 + 多次 LLM 调用),API 以任务 id + SSE 推送进度;前端按环节显示流水线状态。

十、工程结构与实施方案

finrisk/
├── backend/app/
│   ├── models/       # SQLModel:公司/事实/派生/分季/母公司/外部/行业均值/规则/判定/议题/留痕
│   ├── datalayer/    # 七命名空间取数接口(唯一取数通道)
│   ├── rules/        # 规则库加载、四层筛选
│   ├── engine/       # 表达式语言(白名单函数 + AST)、五形态判定、双容差
│   ├── aggregate/    # 议题聚合、三轴评分、八条否决
│   ├── charts/       # 38 图 spec、出图条件、图下判读三行
│   ├── agents/       # orchestrator / readers / writer / qc(LangGraph)
│   ├── llm/          # OpenAI 兼容网关、录制回放
│   └── api/          # FastAPI 路由 + SSE
├── backend/data/     # 种子规则库(YAML,数据驱动可增量)
├── backend/fixtures/ # LLM 录制回放
├── backend/tests/    # 判定引擎与聚合的黄金用例
├── frontend/         # Vue3 + Vite + TS + ECharts
└── samples/          # 两家样本公司数据(健康厂 / 藏雷集团)

里程碑:

阶段内容出口标准
M1数据层 + 两家样本数据七命名空间齐备;派生指标口径单测通过
M2种子规则库 + 判定引擎五形态齐备;每条判定可复算(实测依据回放口径一致);双容差用例通过
M3聚合评分否决 + 图表服务三轴分档正确;藏雷集团触发否决覆盖;38 图 spec 单测 + 代表图渲染验证
M4四类 Agent + 前端全页面判读/结论/质检真实 LLM 跑通;改判 → 重算闭环;质检退回与降级路径可演示

验收标准(对应四个核心命题):①任一条判定点开可见实测数值、阈值档位、规则编号;②结论 JSON 通过 Schema 与质检三道校验,六项文案与档位一致率 100%;③人工改判保存后档位与评级即时刷新,「大模型重算」只改文案不改档位;④藏雷集团评级被否决覆盖为「不建议准入」且判定明细完整。

风险与对策:LLM 输出 JSON 不稳定 → 结构化输出 + 三次重试 + 模板降级;图规格反推的规则口径与行内真实规则库有偏差 → 种子集逐条标注来源(图规格/需求原文),真实规则库到位后按 17 字段导入替换;两家样本覆盖不了中间态分档 → 数据 schema 支持随时增补第三家公司。

十一、术语表

术语定义
风险域规则库的第一级组织,十个(A 盈利能力与质量 … H 关联交易与内部转移),决定维度页
事实域规则映射的最小事实单元,44 个(F01 现金对有息负债覆盖 … F44 费用结构),议题聚合与图表的分组依据
议题同一事实域内全部触发规则合并成的单项,风险项清单的一张卡
议题簇图表去重的依据(全库 868 簇),同一簇只画一张图
判定规则执行结果五态:重点关注 / 关注 / 通过 / 数据不足 / 不适用(不适用不计分母)
档位系统算出的等级(评级极高/高/中/低;授信六维各自档位),模型只把档位写成话
重点关注事项八条一票否决,独立于评分,触发即覆盖结论为「不建议准入」
种子规则集PoC 阶段自造的 80–150 条规则,17 字段结构与 969 条目标态同构
录制回放LLM 网关模式:录制真实响应为 fixtures,回归测试零 token 可复现