1829 lines
62 KiB
HTML
1829 lines
62 KiB
HTML
|
|
<!doctype html>
|
|||
|
|
<html lang="zh-CN">
|
|||
|
|
<head>
|
|||
|
|
<meta charset="utf-8">
|
|||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|||
|
|
<title>X-Financial 智能费控平台核心说明文档</title>
|
|||
|
|
<style>
|
|||
|
|
:root {
|
|||
|
|
color-scheme: light;
|
|||
|
|
--bg: #f6f8f6;
|
|||
|
|
--surface: #ffffff;
|
|||
|
|
--surface-soft: #f9fbfa;
|
|||
|
|
--surface-strong: #edf4f0;
|
|||
|
|
--ink: #14201c;
|
|||
|
|
--ink-soft: #43534d;
|
|||
|
|
--muted: #6b7a74;
|
|||
|
|
--line: #dce6e1;
|
|||
|
|
--line-strong: #c5d5ce;
|
|||
|
|
--teal: #0f766e;
|
|||
|
|
--teal-deep: #0b4f49;
|
|||
|
|
--teal-soft: #e5f4f1;
|
|||
|
|
--blue: #2459a7;
|
|||
|
|
--blue-soft: #eaf1fb;
|
|||
|
|
--amber: #a35f00;
|
|||
|
|
--amber-soft: #fff4dc;
|
|||
|
|
--red: #b43c2d;
|
|||
|
|
--red-soft: #fff0ed;
|
|||
|
|
--green: #287947;
|
|||
|
|
--green-soft: #e8f5ec;
|
|||
|
|
--shadow: 0 18px 40px rgba(23, 42, 35, 0.08);
|
|||
|
|
--shadow-soft: 0 10px 24px rgba(23, 42, 35, 0.06);
|
|||
|
|
--radius: 8px;
|
|||
|
|
--font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Segoe UI", sans-serif;
|
|||
|
|
--mono: "Cascadia Code", "JetBrains Mono", Consolas, monospace;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
* {
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
html {
|
|||
|
|
scroll-behavior: smooth;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
body {
|
|||
|
|
margin: 0;
|
|||
|
|
background:
|
|||
|
|
linear-gradient(180deg, rgba(229, 244, 241, 0.82), rgba(246, 248, 246, 0.96) 360px),
|
|||
|
|
var(--bg);
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-family: var(--font);
|
|||
|
|
font-size: 14px;
|
|||
|
|
line-height: 1.72;
|
|||
|
|
letter-spacing: 0;
|
|||
|
|
overflow-wrap: anywhere;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
a {
|
|||
|
|
color: inherit;
|
|||
|
|
text-decoration: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
img {
|
|||
|
|
display: block;
|
|||
|
|
max-width: 100%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
code {
|
|||
|
|
padding: 2px 6px;
|
|||
|
|
border-radius: 6px;
|
|||
|
|
background: rgba(15, 118, 110, 0.08);
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-family: var(--mono);
|
|||
|
|
font-size: 0.92em;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.page {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: 268px minmax(0, 1fr) 238px;
|
|||
|
|
min-height: 100dvh;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sidebar,
|
|||
|
|
.toc {
|
|||
|
|
position: sticky;
|
|||
|
|
top: 0;
|
|||
|
|
height: 100dvh;
|
|||
|
|
overflow: auto;
|
|||
|
|
background: rgba(255, 255, 255, 0.9);
|
|||
|
|
backdrop-filter: blur(18px);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sidebar {
|
|||
|
|
padding: 24px 18px;
|
|||
|
|
border-right: 1px solid var(--line);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.toc {
|
|||
|
|
padding: 28px 18px;
|
|||
|
|
border-left: 1px solid var(--line);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.brand {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 12px;
|
|||
|
|
padding-bottom: 20px;
|
|||
|
|
border-bottom: 1px solid var(--line);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.brand-line {
|
|||
|
|
display: flex;
|
|||
|
|
gap: 12px;
|
|||
|
|
align-items: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.brand-mark {
|
|||
|
|
display: grid;
|
|||
|
|
width: 42px;
|
|||
|
|
height: 42px;
|
|||
|
|
place-items: center;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
background: #102f2b;
|
|||
|
|
color: #fff;
|
|||
|
|
font-weight: 900;
|
|||
|
|
box-shadow: 0 14px 26px rgba(16, 47, 43, 0.22);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.brand-title {
|
|||
|
|
font-size: 15px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
line-height: 1.28;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.brand-subtitle {
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 1.55;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav-label,
|
|||
|
|
.toc-title {
|
|||
|
|
margin: 22px 0 10px;
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 850;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 5px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav a,
|
|||
|
|
.toc a {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
min-height: 34px;
|
|||
|
|
padding: 7px 10px;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 13px;
|
|||
|
|
font-weight: 760;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav a:hover,
|
|||
|
|
.toc a:hover {
|
|||
|
|
background: var(--teal-soft);
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.dot {
|
|||
|
|
flex: 0 0 auto;
|
|||
|
|
width: 7px;
|
|||
|
|
height: 7px;
|
|||
|
|
margin-right: 10px;
|
|||
|
|
border-radius: 99px;
|
|||
|
|
background: var(--line-strong);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav a:hover .dot,
|
|||
|
|
.toc a:hover .dot {
|
|||
|
|
background: var(--teal);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.side-note {
|
|||
|
|
margin-top: 24px;
|
|||
|
|
padding: 12px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface-soft);
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 1.58;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
main {
|
|||
|
|
min-width: 0;
|
|||
|
|
padding: 34px 42px 58px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero {
|
|||
|
|
position: relative;
|
|||
|
|
overflow: hidden;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background:
|
|||
|
|
linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(238, 247, 244, 0.92)),
|
|||
|
|
var(--surface);
|
|||
|
|
box-shadow: var(--shadow);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero::before {
|
|||
|
|
content: "";
|
|||
|
|
position: absolute;
|
|||
|
|
inset: 0;
|
|||
|
|
pointer-events: none;
|
|||
|
|
background-image:
|
|||
|
|
linear-gradient(rgba(15, 118, 110, 0.08) 1px, transparent 1px),
|
|||
|
|
linear-gradient(90deg, rgba(15, 118, 110, 0.08) 1px, transparent 1px);
|
|||
|
|
background-size: 28px 28px;
|
|||
|
|
mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 72%);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero-inner {
|
|||
|
|
position: relative;
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
|
|||
|
|
gap: 18px;
|
|||
|
|
align-items: stretch;
|
|||
|
|
padding: 30px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.eyebrow {
|
|||
|
|
display: inline-flex;
|
|||
|
|
gap: 8px;
|
|||
|
|
align-items: center;
|
|||
|
|
margin-bottom: 12px;
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.eyebrow::before {
|
|||
|
|
content: "";
|
|||
|
|
width: 24px;
|
|||
|
|
height: 2px;
|
|||
|
|
background: var(--teal);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
h1,
|
|||
|
|
h2,
|
|||
|
|
h3 {
|
|||
|
|
margin: 0;
|
|||
|
|
letter-spacing: 0;
|
|||
|
|
line-height: 1.18;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
h1 {
|
|||
|
|
max-width: 780px;
|
|||
|
|
font-size: clamp(30px, 4vw, 54px);
|
|||
|
|
font-weight: 920;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
h2 {
|
|||
|
|
font-size: 27px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
h3 {
|
|||
|
|
font-size: 18px;
|
|||
|
|
font-weight: 880;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
p {
|
|||
|
|
margin: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.lead {
|
|||
|
|
max-width: 800px;
|
|||
|
|
margin-top: 18px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 16px;
|
|||
|
|
line-height: 1.8;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero-metrics {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|||
|
|
gap: 10px;
|
|||
|
|
align-content: start;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.metric {
|
|||
|
|
min-height: 126px;
|
|||
|
|
padding: 16px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: rgba(255, 255, 255, 0.86);
|
|||
|
|
box-shadow: var(--shadow-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.metric-value {
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-size: 24px;
|
|||
|
|
font-weight: 920;
|
|||
|
|
line-height: 1.1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.metric-label {
|
|||
|
|
margin-top: 8px;
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-weight: 850;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.metric-desc {
|
|||
|
|
margin-top: 6px;
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 1.55;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.doc-meta {
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: wrap;
|
|||
|
|
gap: 8px;
|
|||
|
|
margin-top: 18px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tag {
|
|||
|
|
display: inline-flex;
|
|||
|
|
align-items: center;
|
|||
|
|
min-height: 28px;
|
|||
|
|
padding: 4px 9px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: 8px;
|
|||
|
|
background: rgba(255, 255, 255, 0.74);
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 760;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.section {
|
|||
|
|
margin-top: 34px;
|
|||
|
|
padding: 28px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: rgba(255, 255, 255, 0.92);
|
|||
|
|
box-shadow: var(--shadow-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.section-head {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 10px;
|
|||
|
|
max-width: 860px;
|
|||
|
|
margin-bottom: 20px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.section-kicker {
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.section-desc {
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 15px;
|
|||
|
|
line-height: 1.8;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.grid {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 14px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.cols-2 {
|
|||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.cols-3 {
|
|||
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.cols-4 {
|
|||
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card {
|
|||
|
|
min-width: 0;
|
|||
|
|
padding: 18px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card strong {
|
|||
|
|
display: block;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-size: 15px;
|
|||
|
|
font-weight: 880;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card p {
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
line-height: 1.72;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card small {
|
|||
|
|
display: block;
|
|||
|
|
margin-top: 12px;
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-family: var(--mono);
|
|||
|
|
font-size: 11px;
|
|||
|
|
line-height: 1.55;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.accent-teal {
|
|||
|
|
border-top: 4px solid var(--teal);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.accent-blue {
|
|||
|
|
border-top: 4px solid var(--blue);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.accent-amber {
|
|||
|
|
border-top: 4px solid var(--amber);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.accent-red {
|
|||
|
|
border-top: 4px solid var(--red);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.callout {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 8px;
|
|||
|
|
margin: 18px 0 0;
|
|||
|
|
padding: 16px 18px;
|
|||
|
|
border: 1px solid var(--line-strong);
|
|||
|
|
border-left: 4px solid var(--teal);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface-strong);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.callout-title {
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.callout p {
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.deep-copy {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 12px;
|
|||
|
|
margin-bottom: 18px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 15px;
|
|||
|
|
line-height: 1.86;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.evidence-grid {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|||
|
|
gap: 12px;
|
|||
|
|
margin: 18px 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.evidence-card {
|
|||
|
|
min-width: 0;
|
|||
|
|
padding: 16px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.evidence-card strong {
|
|||
|
|
display: block;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-size: 17px;
|
|||
|
|
font-weight: 920;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.evidence-card span {
|
|||
|
|
display: block;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 13px;
|
|||
|
|
line-height: 1.65;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.split {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: minmax(0, 0.96fr) minmax(340px, 1.04fr);
|
|||
|
|
gap: 18px;
|
|||
|
|
align-items: start;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.bullets {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 10px;
|
|||
|
|
margin: 0;
|
|||
|
|
padding: 0;
|
|||
|
|
list-style: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.bullets li {
|
|||
|
|
position: relative;
|
|||
|
|
padding-left: 20px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.bullets li::before {
|
|||
|
|
content: "";
|
|||
|
|
position: absolute;
|
|||
|
|
top: 0.78em;
|
|||
|
|
left: 0;
|
|||
|
|
width: 7px;
|
|||
|
|
height: 7px;
|
|||
|
|
border-radius: 99px;
|
|||
|
|
background: var(--teal);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.process {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 10px;
|
|||
|
|
margin-top: 14px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.process-step {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: 34px minmax(0, 1fr);
|
|||
|
|
gap: 12px;
|
|||
|
|
align-items: start;
|
|||
|
|
padding: 12px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.step-no {
|
|||
|
|
display: grid;
|
|||
|
|
width: 34px;
|
|||
|
|
height: 34px;
|
|||
|
|
place-items: center;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
background: #102f2b;
|
|||
|
|
color: #fff;
|
|||
|
|
font-family: var(--mono);
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.step-title {
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.step-text {
|
|||
|
|
margin-top: 4px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
line-height: 1.65;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.diagram {
|
|||
|
|
overflow: hidden;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: #fbfdfc;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.diagram svg {
|
|||
|
|
display: block;
|
|||
|
|
width: 100%;
|
|||
|
|
height: auto;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.diagram-caption {
|
|||
|
|
padding: 12px 16px;
|
|||
|
|
border-top: 1px solid var(--line);
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 1.55;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-diagram {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 16px;
|
|||
|
|
padding: 18px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: #fbfdfc;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-row {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
|
|||
|
|
gap: 12px;
|
|||
|
|
align-items: stretch;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node {
|
|||
|
|
position: relative;
|
|||
|
|
min-width: 0;
|
|||
|
|
min-height: 86px;
|
|||
|
|
padding: 14px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
box-shadow: var(--shadow-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node::after {
|
|||
|
|
content: "→";
|
|||
|
|
position: absolute;
|
|||
|
|
top: 50%;
|
|||
|
|
right: -13px;
|
|||
|
|
z-index: 1;
|
|||
|
|
transform: translateY(-50%);
|
|||
|
|
color: var(--teal);
|
|||
|
|
font-size: 18px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-row .flow-node:last-child::after,
|
|||
|
|
.flow-node.no-arrow::after {
|
|||
|
|
display: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node.dark {
|
|||
|
|
border-color: #102f2b;
|
|||
|
|
background: #102f2b;
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node.amber {
|
|||
|
|
border-color: #ecd0a5;
|
|||
|
|
background: #fff8eb;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node.blue {
|
|||
|
|
border-color: #c7d8f3;
|
|||
|
|
background: #f0f6ff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node-title {
|
|||
|
|
color: inherit;
|
|||
|
|
font-size: 14px;
|
|||
|
|
font-weight: 900;
|
|||
|
|
line-height: 1.35;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node-text {
|
|||
|
|
margin-top: 7px;
|
|||
|
|
color: var(--muted);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 1.58;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node.dark .flow-node-text {
|
|||
|
|
color: rgba(255, 255, 255, 0.74);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-band {
|
|||
|
|
padding: 14px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface-strong);
|
|||
|
|
text-align: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-band strong {
|
|||
|
|
display: block;
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-weight: 920;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-band span {
|
|||
|
|
display: block;
|
|||
|
|
margin-top: 5px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 12px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-loop {
|
|||
|
|
padding: 12px 14px;
|
|||
|
|
border: 1px dashed var(--line-strong);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 13px;
|
|||
|
|
line-height: 1.62;
|
|||
|
|
text-align: center;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.module-list {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|||
|
|
gap: 12px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.module-item {
|
|||
|
|
padding: 16px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.module-title {
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.module-desc {
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
line-height: 1.68;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.code-row {
|
|||
|
|
display: flex;
|
|||
|
|
flex-wrap: wrap;
|
|||
|
|
gap: 7px;
|
|||
|
|
margin-top: 12px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.code-chip {
|
|||
|
|
padding: 3px 7px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: 6px;
|
|||
|
|
background: var(--surface-soft);
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-family: var(--mono);
|
|||
|
|
font-size: 11px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.gallery {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|||
|
|
gap: 16px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
figure {
|
|||
|
|
margin: 0;
|
|||
|
|
overflow: hidden;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
box-shadow: var(--shadow-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
figure img {
|
|||
|
|
width: 100%;
|
|||
|
|
aspect-ratio: 16 / 9;
|
|||
|
|
object-fit: cover;
|
|||
|
|
object-position: top left;
|
|||
|
|
border-bottom: 1px solid var(--line);
|
|||
|
|
background: #edf2ef;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
figcaption {
|
|||
|
|
padding: 12px 14px 14px;
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
font-size: 13px;
|
|||
|
|
line-height: 1.62;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
figcaption strong {
|
|||
|
|
display: block;
|
|||
|
|
margin-bottom: 4px;
|
|||
|
|
color: var(--ink);
|
|||
|
|
font-size: 14px;
|
|||
|
|
font-weight: 880;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.formula {
|
|||
|
|
margin-top: 14px;
|
|||
|
|
padding: 16px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: #101a16;
|
|||
|
|
color: #edf8f4;
|
|||
|
|
font-family: var(--mono);
|
|||
|
|
font-size: 12.5px;
|
|||
|
|
line-height: 1.72;
|
|||
|
|
overflow: auto;
|
|||
|
|
white-space: pre;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.timeline {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 10px;
|
|||
|
|
margin-top: 14px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.timeline-item {
|
|||
|
|
display: grid;
|
|||
|
|
grid-template-columns: 118px minmax(0, 1fr);
|
|||
|
|
gap: 14px;
|
|||
|
|
padding: 14px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.timeline-phase {
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-weight: 900;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.timeline-text {
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.footer {
|
|||
|
|
margin-top: 34px;
|
|||
|
|
padding: 22px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: #102f2b;
|
|||
|
|
color: rgba(255, 255, 255, 0.82);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.footer strong {
|
|||
|
|
display: block;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
color: #fff;
|
|||
|
|
font-size: 16px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.source-list {
|
|||
|
|
display: grid;
|
|||
|
|
gap: 10px;
|
|||
|
|
margin: 0;
|
|||
|
|
padding: 0;
|
|||
|
|
list-style: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.source-list li {
|
|||
|
|
padding: 12px 14px;
|
|||
|
|
border: 1px solid var(--line);
|
|||
|
|
border-radius: var(--radius);
|
|||
|
|
background: var(--surface);
|
|||
|
|
color: var(--ink-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.source-list a {
|
|||
|
|
color: var(--teal-deep);
|
|||
|
|
font-weight: 850;
|
|||
|
|
text-decoration: underline;
|
|||
|
|
text-underline-offset: 3px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@media (max-width: 1500px) {
|
|||
|
|
.page {
|
|||
|
|
grid-template-columns: 236px minmax(0, 1fr);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.toc {
|
|||
|
|
display: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.split {
|
|||
|
|
grid-template-columns: 1fr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@media (max-width: 1180px) {
|
|||
|
|
.flow-row {
|
|||
|
|
grid-template-columns: 1fr !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.flow-node::after {
|
|||
|
|
top: auto;
|
|||
|
|
right: 50%;
|
|||
|
|
bottom: -18px;
|
|||
|
|
transform: translateX(50%) rotate(90deg);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@media (max-width: 880px) {
|
|||
|
|
.page {
|
|||
|
|
display: block;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sidebar {
|
|||
|
|
position: relative;
|
|||
|
|
height: auto;
|
|||
|
|
border-right: 0;
|
|||
|
|
border-bottom: 1px solid var(--line);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.nav {
|
|||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
main {
|
|||
|
|
padding: 22px 16px 44px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero-inner,
|
|||
|
|
.split,
|
|||
|
|
.cols-2,
|
|||
|
|
.cols-3,
|
|||
|
|
.cols-4,
|
|||
|
|
.evidence-grid,
|
|||
|
|
.module-list,
|
|||
|
|
.gallery {
|
|||
|
|
grid-template-columns: 1fr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero-inner,
|
|||
|
|
.section {
|
|||
|
|
padding: 20px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.hero-metrics {
|
|||
|
|
grid-template-columns: 1fr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.timeline-item {
|
|||
|
|
grid-template-columns: 1fr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@media print {
|
|||
|
|
body {
|
|||
|
|
background: #fff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.page {
|
|||
|
|
display: block;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.sidebar,
|
|||
|
|
.toc {
|
|||
|
|
display: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
main {
|
|||
|
|
padding: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.section,
|
|||
|
|
.hero,
|
|||
|
|
figure {
|
|||
|
|
break-inside: avoid;
|
|||
|
|
box-shadow: none;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|
|||
|
|
</head>
|
|||
|
|
<body>
|
|||
|
|
<div class="page">
|
|||
|
|
<aside class="sidebar">
|
|||
|
|
<div class="brand">
|
|||
|
|
<div class="brand-line">
|
|||
|
|
<div class="brand-mark">XF</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="brand-title">智能费控平台</div>
|
|||
|
|
<div class="brand-subtitle">X-Financial 核心说明</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<p class="brand-subtitle">
|
|||
|
|
本文档基于当前项目模块、架构文档、后端服务与页面截图整理,
|
|||
|
|
用于产品介绍、内部汇报和方案评审。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="nav-label">文档导航</div>
|
|||
|
|
<nav class="nav" aria-label="主导航">
|
|||
|
|
<a href="#why"><span class="dot"></span>为什么要做</a>
|
|||
|
|
<a href="#future"><span class="dot"></span>未来地位</a>
|
|||
|
|
<a href="#blue"><span class="dot"></span>蓝海空间</a>
|
|||
|
|
<a href="#goal"><span class="dot"></span>开发目的</a>
|
|||
|
|
<a href="#algorithms"><span class="dot"></span>核心算法</a>
|
|||
|
|
<a href="#modules"><span class="dot"></span>项目模块</a>
|
|||
|
|
<a href="#architecture"><span class="dot"></span>架构图</a>
|
|||
|
|
<a href="#ontology"><span class="dot"></span>本体语义层</a>
|
|||
|
|
<a href="#screens"><span class="dot"></span>关键页面</a>
|
|||
|
|
<a href="#roadmap"><span class="dot"></span>演进路线</a>
|
|||
|
|
<a href="#sources"><span class="dot"></span>趋势来源</a>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
<div class="side-note">
|
|||
|
|
关键词:费控画像、预算占比、规则中心、双智能体循环、Hermes 数字员工、
|
|||
|
|
本体语义层、RAG 知识检索、风险解释、财务洞察。
|
|||
|
|
</div>
|
|||
|
|
</aside>
|
|||
|
|
|
|||
|
|
<main>
|
|||
|
|
<header class="hero" id="top">
|
|||
|
|
<div class="hero-inner">
|
|||
|
|
<div>
|
|||
|
|
<div class="eyebrow">X-Financial / Intelligent Expense Control</div>
|
|||
|
|
<h1>从报销工具,到企业费用智能操作系统</h1>
|
|||
|
|
<p class="lead">
|
|||
|
|
智能费控平台的核心价值,不是把传统审批流程搬到线上,
|
|||
|
|
而是把费用、预算、组织、制度、票据、行为画像和智能体能力
|
|||
|
|
连接成一套可解释、可追溯、可持续进化的企业财务风控中枢。
|
|||
|
|
</p>
|
|||
|
|
<div class="doc-meta">
|
|||
|
|
<span class="tag">面向管理层</span>
|
|||
|
|
<span class="tag">面向财务共享</span>
|
|||
|
|
<span class="tag">面向研发评审</span>
|
|||
|
|
<span class="tag">HTML 单页文档</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="hero-metrics" aria-label="核心摘要">
|
|||
|
|
<div class="metric">
|
|||
|
|
<div class="metric-value">2 层</div>
|
|||
|
|
<div class="metric-label">双智能体循环</div>
|
|||
|
|
<div class="metric-desc">User Agent 处理用户操作;Hermes 在后台持续巡检数据与流转风险。</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="metric">
|
|||
|
|
<div class="metric-value">10+</div>
|
|||
|
|
<div class="metric-label">业务模块</div>
|
|||
|
|
<div class="metric-desc">覆盖总览、单据、预算、规则、数字员工、知识库、日志和设置。</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="metric">
|
|||
|
|
<div class="metric-value">8 字段</div>
|
|||
|
|
<div class="metric-label">本体协议核心</div>
|
|||
|
|
<div class="metric-desc">domain、scenario、intent、entities、time_range、constraints、risk_signals、next_step。</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="metric">
|
|||
|
|
<div class="metric-value">4 类</div>
|
|||
|
|
<div class="metric-label">画像与风控算法</div>
|
|||
|
|
<div class="metric-desc">申请人费用画像、员工行为画像、预算费用模型、规则/本体/RAG 分析。</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</header>
|
|||
|
|
|
|||
|
|
<section class="section" id="why">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">01 / WHY</div>
|
|||
|
|
<h2>为什么要做智能费控平台</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
智能费控不是把报销审批电子化,而是把企业每一笔支出变成可理解、可预测、可解释的经营信号。
|
|||
|
|
当 AI、RAG、智能体、异常检测和预算联动进入财务流程后,费用平台会从“流程系统”升级为“经营控制系统”。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="deep-copy">
|
|||
|
|
<p>
|
|||
|
|
第一,费用是企业经营动作最密集、最贴近一线的数据入口。销售拜访客户会产生差旅和招待,
|
|||
|
|
项目交付会产生交通、住宿、外包和办公支出,培训、采购、通信、会务也都以费用形式落地。
|
|||
|
|
如果企业只在报销完成后做核销,就只能看到“钱已经花了”;如果在申请、预算占用、票据上传、
|
|||
|
|
审批和归档全过程做智能分析,就能提前看到“这笔钱为什么要花、是否该花、花完后对预算和风险有什么影响”。
|
|||
|
|
</p>
|
|||
|
|
<p>
|
|||
|
|
第二,财务工作的重心正在从人工处理转向分析、预测和决策支持。Gartner 2025 年财务 AI 调研显示,
|
|||
|
|
财务组织最常见的 AI 用例已经包括知识管理、应付流程自动化、错误与异常检测;McKinsey 的 CFO 调研也显示,
|
|||
|
|
绝大多数受访者期待 AI 减少人工分析负担、生成洞察。这意味着费控平台必须具备自动识别、自动解释和自动沉淀的能力,
|
|||
|
|
否则它会停留在“录单工具”,无法进入未来财务的核心工作台。
|
|||
|
|
</p>
|
|||
|
|
<p>
|
|||
|
|
第三,费用风险越来越隐蔽。传统审批能挡住“缺附件”“超标准”这类显性问题,
|
|||
|
|
但很难发现拆单、跨部门合谋、异常频次、预算节奏异常、同组偏离、长期材料质量差等隐性问题。
|
|||
|
|
ACFE 的职业舞弊报告将虚构或夸大业务费用列为典型报销舞弊形态;随着 AI 生成票据、深度伪造和自动化攻击出现,
|
|||
|
|
企业更需要一个能把票据、人员、部门、历史行为、预算和制度放在一起分析的平台。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="evidence-grid" aria-label="趋势证据">
|
|||
|
|
<div class="evidence-card">
|
|||
|
|
<strong>59%</strong>
|
|||
|
|
<span>Gartner 2025 年调研显示,财务 AI 采用率已达到约六成,知识管理、应付自动化和异常检测是高频用例。</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="evidence-card">
|
|||
|
|
<strong>85%</strong>
|
|||
|
|
<span>McKinsey CFO Pulse 提到,多数 CFO 期待 AI 生成洞察、减少手工分析,把财务人员释放到更高价值工作。</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="evidence-card">
|
|||
|
|
<strong>25%</strong>
|
|||
|
|
<span>Salesforce 2025 年 CFO 调研显示,CFO 平均把约四分之一 AI 预算投向 AI Agent,数字劳动力进入预算层。</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="grid cols-2">
|
|||
|
|
<article class="card accent-teal">
|
|||
|
|
<strong>1. 从事后核销,变成事前控制</strong>
|
|||
|
|
<p>
|
|||
|
|
传统系统往往在报销单提交后才发现问题,智能费控可以在申请阶段就识别预算余量、
|
|||
|
|
费用类型、地点、票据要求和制度约束。这样报销不是最后一关,而是从费用发生前就开始的控制链路。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-blue">
|
|||
|
|
<strong>2. 从人找规则,变成规则找风险</strong>
|
|||
|
|
<p>
|
|||
|
|
制度、Excel 规则、风险 JSON、知识库和历史记录被统一纳入规则中心与本体语义层,
|
|||
|
|
系统可以自动给出命中原因、制度依据和补正建议,减少审批人凭经验反复判断。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-amber">
|
|||
|
|
<strong>3. 从部门口径,变成企业费用画像</strong>
|
|||
|
|
<p>
|
|||
|
|
部门、岗位、职级、费用类型、预算池、审批质量和 AI 协作记录共同构成画像,
|
|||
|
|
让财务看到“为什么这个单据值得关注”,也让部门负责人知道费用结构是否偏离经营节奏。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-red">
|
|||
|
|
<strong>4. 从流程系统,变成智能运营中枢</strong>
|
|||
|
|
<p>
|
|||
|
|
Hermes 数字员工可以按计划巡检风险、生成报告、汇总异常、沉淀优化候选,
|
|||
|
|
让财务团队从重复检查转向规则治理、预算策略、风险决策和经营分析。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="callout">
|
|||
|
|
<div class="callout-title">一句话定位</div>
|
|||
|
|
<p>
|
|||
|
|
智能费控平台不是“更漂亮的报销页面”,而是企业经营数据进入财务风控体系的语义入口,
|
|||
|
|
也是未来 AI 财务中台最容易落地、最容易证明价值的入口之一。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="future">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">02 / COMPANY POSITION</div>
|
|||
|
|
<h2>费控在未来公司的地位</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
未来公司的费控,会从“报销审批入口”变成“经营支出操作系统”。
|
|||
|
|
它一端连接员工和部门的真实业务动作,另一端连接预算、现金流、成本、风险、制度和管理决策。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="deep-copy">
|
|||
|
|
<p>
|
|||
|
|
从组织分工看,CFO 的角色正在从财务记录者变成业务伙伴和技术治理者。
|
|||
|
|
Deloitte 的未来财务洞察持续强调,财务团队会把更多时间投入分析、预测和决策支持;
|
|||
|
|
Deloitte APAC CFO 2025 调研也显示,接近一半 CFO 认为生成式 AI 会在两年内显著改变行业、组织和财务职能。
|
|||
|
|
这意味着费控不应再被放在“报销系统”这个狭窄位置,而应该成为 CFO 获取一线经营信号的前置雷达。
|
|||
|
|
</p>
|
|||
|
|
<p>
|
|||
|
|
从业务管理看,预算不再只是年初编制和月底复盘。未来预算需要跟每一次费用申请实时联动:
|
|||
|
|
当前预算池还有多少、审批后使用率是多少、是否触达预警线、该部门同类费用是否异常、是否影响项目毛利和现金节奏。
|
|||
|
|
因此费控会成为部门经理、项目负责人和财务 BP 共同使用的经营协同平台。
|
|||
|
|
</p>
|
|||
|
|
<p>
|
|||
|
|
从风险控制看,未来公司的费用风险不是单张票据能解释清楚的,而是多源数据的组合问题。
|
|||
|
|
一张票据可能合规,但一个人三个月内的频次、金额、地点、客户、同行人和预算占比可能异常。
|
|||
|
|
智能费控要把这些信号拉成一张网,让管理者在支付之前就看到风险轮廓。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="split">
|
|||
|
|
<div>
|
|||
|
|
<ul class="bullets">
|
|||
|
|
<li><strong>经营仪表盘:</strong>部门费用、项目消耗、预算占比、执行率、风险热区可以被实时汇总。</li>
|
|||
|
|
<li><strong>预算守门员:</strong>费用申请不再只看“能不能报”,而要看“是否符合预算节奏”。</li>
|
|||
|
|
<li><strong>内控前置层:</strong>票据、地点、人员、金额、制度条款和历史行为被联动审核。</li>
|
|||
|
|
<li><strong>AI 财务工作台:</strong>财务人员可以通过自然语言查询制度、解释风险、生成审批建议和费用报告。</li>
|
|||
|
|
<li><strong>规则与知识工厂:</strong>制度解释、规则生成、风险复盘和人工反馈进入可持续优化闭环。</li>
|
|||
|
|
<li><strong>管理决策入口:</strong>管理者可以询问“哪个部门预算风险最高”“哪些费用正在吞噬毛利”。</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="flow-diagram" aria-label="费控未来地位流程图">
|
|||
|
|
<div class="flow-row" style="--cols: 3">
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">业务动作</div>
|
|||
|
|
<div class="flow-node-text">出差、采购、招待、培训、项目交付</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node dark">
|
|||
|
|
<div class="flow-node-title">智能费控平台</div>
|
|||
|
|
<div class="flow-node-text">预算、单据、制度、票据、风险、智能体</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">财务结果</div>
|
|||
|
|
<div class="flow-node-text">成本、现金、核销、支付、账务沉淀</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-row" style="--cols: 3">
|
|||
|
|
<div class="flow-node blue">
|
|||
|
|
<div class="flow-node-title">组织与预算</div>
|
|||
|
|
<div class="flow-node-text">部门、项目、成本中心、预算池</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">数据与画像</div>
|
|||
|
|
<div class="flow-node-text">费用画像、行为画像、同组基准</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node blue">
|
|||
|
|
<div class="flow-node-title">管理决策</div>
|
|||
|
|
<div class="flow-node-text">预警、报告、经营洞察、规则优化</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="diagram-caption">
|
|||
|
|
费控位于经营动作和财务结果之间,未来承担预算守门、规则解释、风险识别、数据画像和管理洞察的中枢角色。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="blue">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">03 / BLUE OCEAN</div>
|
|||
|
|
<h2>智能分析费控平台的蓝海</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
传统 ERP、OA、报销系统和财务共享平台已经覆盖了流程,但对“语义理解、自动洞察、隐性风险识别、
|
|||
|
|
预算占比解释、部门费用经营分析”的覆盖仍然不足。蓝海空间正来自这个空白:
|
|||
|
|
市场正在从单点报销工具转向 AI 驱动的差旅、费用、发票、预算和风险一体化平台。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="deep-copy">
|
|||
|
|
<p>
|
|||
|
|
Grand View Research 2025 年报告预计,全球差旅与费用管理软件市场到 2030 年将达到 106.9 亿美元,
|
|||
|
|
2024 至 2030 年复合增速为 16.9%。更重要的是,它特别提到 AI 可用于审批与支付自动化、
|
|||
|
|
员工差旅历史和支出模式分析、OCR 票据字段识别以及基于自然语言的交互。
|
|||
|
|
这说明市场真正的增长点不只是“报销线上化”,而是“费用智能化”。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="grid cols-3">
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>非结构化数据智能化</strong>
|
|||
|
|
<p>票据、制度 PDF、Excel 规则、审批意见、用户自然语言都能进入同一个语义管道。</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>部门费用经营化</strong>
|
|||
|
|
<p>费用从“报销明细”升级为“部门预算执行、费用结构、异常趋势、经营压力”的管理对象。</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>风险识别前置化</strong>
|
|||
|
|
<p>拆单、超预算、重复票据、地点不一致、附件缺失、异常频次都可以更早被发现。</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>财务智能体运营化</strong>
|
|||
|
|
<p>后台数字员工不再等待人点击,而是按周期巡检数据、生成报告和沉淀优化候选。</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>规则治理产品化</strong>
|
|||
|
|
<p>自然语言规则、风险规则、Excel 规则和制度知识可以逐步变成可测试、可版本化资产。</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card">
|
|||
|
|
<strong>财务知识即时化</strong>
|
|||
|
|
<p>RAG 与知识库让制度解释从人工翻文档,转为“问一句,返回依据和建议”。</p>
|
|||
|
|
</article>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="goal">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">04 / PROJECT GOAL</div>
|
|||
|
|
<h2>开发这个平台的目的</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
当前项目的目标是做一套可演示、可扩展、可继续工程化的智能费控底座。
|
|||
|
|
它既要能承载真实报销、审批、预算和知识库流程,也要能承载智能体调用和后续自进化闭环。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="process">
|
|||
|
|
<div class="process-step">
|
|||
|
|
<div class="step-no">01</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="step-title">让用户用自然语言完成费用流程</div>
|
|||
|
|
<div class="step-text">用户可以描述出差、招待、补件、审批问题,系统通过本体解析成结构化字段,再交给编排器和对应服务处理。</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="process-step">
|
|||
|
|
<div class="step-no">02</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="step-title">让财务看到预算和风险的真实原因</div>
|
|||
|
|
<div class="step-text">预算中心计算预算占用、剩余额度、审批后使用率;规则中心解释风险规则命中;画像算法给出同组基准。</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="process-step">
|
|||
|
|
<div class="step-no">03</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="step-title">让 Hermes 自动发现隐藏问题</div>
|
|||
|
|
<div class="step-text">后台数字员工读取单据、聚类上下文、识别拆单和异常频次等隐性风险,再形成报告和工单候选。</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="process-step">
|
|||
|
|
<div class="step-no">04</div>
|
|||
|
|
<div>
|
|||
|
|
<div class="step-title">让知识、规则和反馈持续进化</div>
|
|||
|
|
<div class="step-text">人工反馈、OCR 修正、规则误报漏报、审批意见改写和知识问答反馈进入候选池,经人工审核后更新规则或知识。</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="algorithms">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">05 / ALGORITHMS</div>
|
|||
|
|
<h2>相关算法与智能分析能力</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
项目中已经沉淀了独立算法目录和多个业务模型。核心原则是:
|
|||
|
|
先有可解释公式,再进入服务;算法输出“依据 + 建议动作”,不直接替代人工审批。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="grid cols-2">
|
|||
|
|
<article class="card accent-teal">
|
|||
|
|
<strong>申请人费用画像</strong>
|
|||
|
|
<p>
|
|||
|
|
根据近 90/180 天申请频次、金额占用、同组偏离、历史退回调减、本次申请偏离等指标,
|
|||
|
|
计算画像风险分和审批建议强度。
|
|||
|
|
</p>
|
|||
|
|
<small>applicant_expense_profile.py / applicant_expense_profile_formula.md</small>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-blue">
|
|||
|
|
<strong>员工行为画像</strong>
|
|||
|
|
<p>
|
|||
|
|
覆盖费用支出画像、流程质量画像、AI 协作强度、审批行为画像,
|
|||
|
|
支持按照部门、岗位、职级和费用类型建立同组基准。
|
|||
|
|
</p>
|
|||
|
|
<small>employee_behavior_profile.py / employee_behavior_profile_service.py</small>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-amber">
|
|||
|
|
<strong>预算费用管控模型</strong>
|
|||
|
|
<p>
|
|||
|
|
结合预算总额、已占用、已核销、本次申请金额、审批后使用率、预警线和超预算金额,
|
|||
|
|
输出 recommended、caution、review、block 等建议。
|
|||
|
|
</p>
|
|||
|
|
<small>budget_expense_control.py / budget.py</small>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-red">
|
|||
|
|
<strong>风险规则与本体桥接</strong>
|
|||
|
|
<p>
|
|||
|
|
风险信号会映射到具体规则编码,例如重复发票、地点不一致、附件不匹配、事由过短,
|
|||
|
|
使自然语言风险问题能落到可执行规则。
|
|||
|
|
</p>
|
|||
|
|
<small>risk_ontology_bridge.py / risk_rule_template_executor.py</small>
|
|||
|
|
</article>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="formula" aria-label="画像核心公式">profile_score =
|
|||
|
|
frequency_score * 0.20
|
|||
|
|
+ amount_occupancy_score * 0.25
|
|||
|
|
+ peer_deviation_score * 0.25
|
|||
|
|
+ adjustment_history_score * 0.15
|
|||
|
|
+ current_claim_deviation_score * 0.15
|
|||
|
|
|
|||
|
|
budget_control =
|
|||
|
|
claim_amount_ratio
|
|||
|
|
+ after_usage_rate
|
|||
|
|
+ over_budget_amount
|
|||
|
|
+ missing_business_context
|
|||
|
|
+ control_action</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="modules">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">06 / MODULES</div>
|
|||
|
|
<h2>当前项目模块与核心能力</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
前端提供业务操作入口,后端提供领域服务、智能体编排、本体解析、规则资产、知识检索和审计追踪。
|
|||
|
|
其中最核心的是:本体语义层、Orchestrator、User Agent、Hermes、预算/单据服务、规则中心和画像算法。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-list">
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">前端应用层</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
总览、个人工作台、单据中心、预算中心、规则中心、数字员工、员工管理、制度知识、日志管理、系统设置。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">OverviewView</span>
|
|||
|
|
<span class="code-chip">BudgetCenterView</span>
|
|||
|
|
<span class="code-chip">AuditView</span>
|
|||
|
|
<span class="code-chip">DigitalEmployeesView</span>
|
|||
|
|
<span class="code-chip">DocumentsCenterView</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">单据与报销服务</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
支持申请单、报销单、附件、票据分析、审批、退回、归档、预算联动和 AI 结构化核对。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">ExpenseClaimService</span>
|
|||
|
|
<span class="code-chip">expense_claim_budget_flow</span>
|
|||
|
|
<span class="code-chip">expense_claim_risk_review</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">预算中心</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
管理预算额度、部门/项目/成本中心维度、预算占用、核销、可用余额、预警线和超预算控制。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">BudgetService</span>
|
|||
|
|
<span class="code-chip">BudgetAllocation</span>
|
|||
|
|
<span class="code-chip">BudgetReservation</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">规则中心</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
管理财务规则、风险规则、规则测试、规则等级、业务场景、费用类型范围和规则资产版本。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">AgentAssetService</span>
|
|||
|
|
<span class="code-chip">AgentFoundationRiskRuleMixin</span>
|
|||
|
|
<span class="code-chip">risk-rules</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">本体语义层</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
把自然语言、页面动作、附件上下文和定时任务解析成统一协议,供 Agent 和工具调用使用。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">SemanticOntologyService</span>
|
|||
|
|
<span class="code-chip">ontology_detection</span>
|
|||
|
|
<span class="code-chip">ontology_extraction</span>
|
|||
|
|
<span class="code-chip">ontology_validation</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">Agent 编排与追踪</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
Orchestrator 决定进入 User Agent 或 Hermes,记录本体解析、工具调用、降级结果和审计轨迹。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">OrchestratorService</span>
|
|||
|
|
<span class="code-chip">OrchestratorExecutionEngine</span>
|
|||
|
|
<span class="code-chip">AgentRunService</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">知识库与 RAG</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
对制度、FAQ、Excel、PDF、DOCX 进行检索和结构化回答,支持本地文本块与 LightRAG 运行时融合。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">KnowledgeRagService</span>
|
|||
|
|
<span class="code-chip">knowledge_document_extractors</span>
|
|||
|
|
<span class="code-chip">knowledge_ingest_log</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="module-item">
|
|||
|
|
<div class="module-title">Hermes 数字员工</div>
|
|||
|
|
<p class="module-desc">
|
|||
|
|
后台执行风险扫描、费用报告、员工画像刷新、任务日志记录和风险报告沉淀。
|
|||
|
|
</p>
|
|||
|
|
<div class="code-row">
|
|||
|
|
<span class="code-chip">HermesRiskScannerService</span>
|
|||
|
|
<span class="code-chip">hermes_scheduler</span>
|
|||
|
|
<span class="code-chip">HermesRiskReport</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="architecture">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">07 / ARCHITECTURE</div>
|
|||
|
|
<h2>双智能体循环架构</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
外层 User Agent 负责用户操作、问答、草稿和确认;内层 Hermes 负责后台巡检、隐性风险、任务报告和候选优化。
|
|||
|
|
两者不争夺职责,而是共享本体、规则、知识、数据和审计。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div class="flow-diagram" aria-label="X-Financial 双智能体循环架构图">
|
|||
|
|
<div class="flow-band">
|
|||
|
|
<strong>外层循环:User Agent 面向用户操作</strong>
|
|||
|
|
<span>处理用户自然语言、页面动作、草稿生成、审批解释和确认后的流程写入</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-row" style="--cols: 5">
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">用户输入</div>
|
|||
|
|
<div class="flow-node-text">自然语言、页面按钮、附件上下文</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">本体解析</div>
|
|||
|
|
<div class="flow-node-text">场景、意图、实体、缺槽位</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node dark">
|
|||
|
|
<div class="flow-node-title">Orchestrator</div>
|
|||
|
|
<div class="flow-node-text">路由、权限、审计、降级</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">工具执行</div>
|
|||
|
|
<div class="flow-node-text">DB、规则、RAG、OCR、预算</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">回答/草稿</div>
|
|||
|
|
<div class="flow-node-text">解释、核对、确认、提交</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-loop">
|
|||
|
|
用户确认、补充字段或修改核对结果后,继续回到同一个会话上下文。
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-band">
|
|||
|
|
<strong>共享中台</strong>
|
|||
|
|
<span>语义本体 · 规则资产 · 知识库 · 业务数据库 · AgentRun Trace · 权限审计</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-band">
|
|||
|
|
<strong>内层循环:Hermes 数字员工监控核心数据与流转风险</strong>
|
|||
|
|
<span>面向系统事件和定时任务,负责长期巡检、隐性风险、报告与优化候选</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-row" style="--cols: 5">
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">定时触发</div>
|
|||
|
|
<div class="flow-node-text">schedule、system event、手动触发</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">数据快照</div>
|
|||
|
|
<div class="flow-node-text">预算、单据、员工、日志</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">风险分析</div>
|
|||
|
|
<div class="flow-node-text">规则、LLM、画像、同组基准</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">报告/工单</div>
|
|||
|
|
<div class="flow-node-text">risk_report、work_items、snapshot</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node amber">
|
|||
|
|
<div class="flow-node-title">反馈候选</div>
|
|||
|
|
<div class="flow-node-text">规则、知识、OCR、Prompt</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-loop">
|
|||
|
|
Hermes 只生成候选和报告;规则上线、知识发布、审批和付款仍需要权限、确认和人工审核。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="diagram-caption">
|
|||
|
|
双循环的关键不是“两个聊天机器人”,而是把用户主动流程和后台系统巡检拆开,
|
|||
|
|
再通过统一语义协议、规则资产、业务数据和审计日志连接起来。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="ontology">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">08 / ONTOLOGY</div>
|
|||
|
|
<h2>本体语义层的优势</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
当前项目已经接入本体语义层。它的价值在于把“用户怎么说”和“系统怎么执行”隔开,
|
|||
|
|
让自然语言、页面动作、定时任务、规则中心和数据库查询都走同一套协议。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="split">
|
|||
|
|
<div class="grid">
|
|||
|
|
<article class="card accent-teal">
|
|||
|
|
<strong>减少关键词误判</strong>
|
|||
|
|
<p>
|
|||
|
|
用户说“我今天去客户现场,招待客户”,不能因为出现“客户”就误路由到应收查询。
|
|||
|
|
本体会综合场景、意图、缺槽位和上下文判断。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-blue">
|
|||
|
|
<strong>让 Agent 调用可审计</strong>
|
|||
|
|
<p>
|
|||
|
|
每次调用都能保留 scenario、intent、entities、risk_flags、next_step,
|
|||
|
|
便于回放、追责和优化。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
<article class="card accent-amber">
|
|||
|
|
<strong>让规则与预算复用同一语义</strong>
|
|||
|
|
<p>
|
|||
|
|
费用类型、部门、预算期间、预算科目、风险信号都可以被统一解析,
|
|||
|
|
减少前后端重复写规则。
|
|||
|
|
</p>
|
|||
|
|
</article>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div>
|
|||
|
|
<div class="flow-diagram" aria-label="本体语义层协议图">
|
|||
|
|
<div class="flow-row" style="--cols: 2">
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">自然语言 / 页面动作</div>
|
|||
|
|
<div class="flow-node-text">用户提问、发起申请、编辑核对、上传附件</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node">
|
|||
|
|
<div class="flow-node-title">定时任务 / 系统事件</div>
|
|||
|
|
<div class="flow-node-text">风险巡检、知识同步、MCP 健康检查</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-band">
|
|||
|
|
<strong>Semantic Ontology</strong>
|
|||
|
|
<span>domain · scenario · intent · entities · time_range · constraints · risk_signals · next_step</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-row" style="--cols: 3">
|
|||
|
|
<div class="flow-node blue">
|
|||
|
|
<div class="flow-node-title">数据库查询</div>
|
|||
|
|
<div class="flow-node-text">预算、单据、员工、部门、应收应付</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node blue">
|
|||
|
|
<div class="flow-node-title">规则 / MCP</div>
|
|||
|
|
<div class="flow-node-text">风险规则、票据校验、外部服务</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="flow-node blue">
|
|||
|
|
<div class="flow-node-title">知识 / RAG</div>
|
|||
|
|
<div class="flow-node-text">制度条款、FAQ、历史解释、证据来源</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="diagram-caption">
|
|||
|
|
本体层不直接给最终答案,它输出可执行协议,让后续工具和 Agent 按相同语义工作。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="formula" aria-label="本体协议字段">{
|
|||
|
|
"domain": "reimbursement",
|
|||
|
|
"scenario": "travel_reimbursement",
|
|||
|
|
"intent": "risk_check",
|
|||
|
|
"entities": ["employee", "department", "expense_type", "budget_period"],
|
|||
|
|
"time_range": {},
|
|||
|
|
"constraints": {},
|
|||
|
|
"risk_signals": ["duplicate_invoice", "over_budget"],
|
|||
|
|
"next_step": "run_rule"
|
|||
|
|
}</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="screens">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">09 / PRODUCT SCREENS</div>
|
|||
|
|
<h2>关键页面截图</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
下列截图来自当前项目 `web/UI` 目录,用来展示平台已经覆盖的核心操作面:
|
|||
|
|
管理总览、预算、单据、智能助手、知识库、日志和设置。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="gallery">
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/首页新.png" alt="X-Financial 首页总览截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>财务运营总览</strong>
|
|||
|
|
汇总业务流转、风险信号和关键指标,是管理层进入智能费控平台的第一屏。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/预算中心.jpg" alt="预算中心截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>预算中心</strong>
|
|||
|
|
维护部门、项目、费用类型预算,跟踪预算占用、可用余额和超预算预警。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/对话界面.png" alt="智能助手对话界面截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>User Agent 对话</strong>
|
|||
|
|
承接自然语言查询、流程草稿、风险解释和用户确认,是外层智能体循环的入口。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/审批中心详情.png" alt="审批中心详情截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>单据与审批详情</strong>
|
|||
|
|
展示申请、报销、审批意见、附件核对、风险提示和可追溯处理记录。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/知识库.png" alt="制度知识库截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>制度与知识库</strong>
|
|||
|
|
承载制度文档、知识检索和 RAG 证据来源,支持智能问答和规则解释。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/日志界面.jpg" alt="日志管理页面截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>日志管理</strong>
|
|||
|
|
观察 Agent Run、工具调用、语义解析、知识同步和系统运行状态。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/首页风险.png" alt="风险总览截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>风险洞察</strong>
|
|||
|
|
用于展示风险分布、异常趋势和需要财务关注的事项。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
<figure>
|
|||
|
|
<img src="../../../web/UI/设置界面.png" alt="系统设置截图" loading="lazy">
|
|||
|
|
<figcaption>
|
|||
|
|
<strong>系统设置</strong>
|
|||
|
|
管理企业信息、模型接入、日志策略、渲染配置和通知能力。
|
|||
|
|
</figcaption>
|
|||
|
|
</figure>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="roadmap">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">10 / EVOLUTION</div>
|
|||
|
|
<h2>建议演进路线</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
当前项目已经具备智能费控雏形。后续重点不是堆更多页面,而是把本体、预算、画像、规则、
|
|||
|
|
Hermes 和反馈闭环做深,让平台从“能演示”走向“可运营”。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="timeline">
|
|||
|
|
<div class="timeline-item">
|
|||
|
|
<div class="timeline-phase">阶段一</div>
|
|||
|
|
<div class="timeline-text">
|
|||
|
|
完成本体协议、单据中心、预算中心、规则中心、知识库和 Agent Run 追踪的稳定联动。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="timeline-item">
|
|||
|
|
<div class="timeline-phase">阶段二</div>
|
|||
|
|
<div class="timeline-text">
|
|||
|
|
加强费用画像、部门预算占比、审批建议、风险解释和单据详情页的业务可读性。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="timeline-item">
|
|||
|
|
<div class="timeline-phase">阶段三</div>
|
|||
|
|
<div class="timeline-text">
|
|||
|
|
将 Hermes 的风险扫描、费用报告、员工画像刷新和规则质量复盘变成可配置任务。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="timeline-item">
|
|||
|
|
<div class="timeline-phase">阶段四</div>
|
|||
|
|
<div class="timeline-text">
|
|||
|
|
建立人工反馈池,让 OCR 修正、规则误报漏报、审批意见改写和知识问答反馈形成候选优化项。
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="callout">
|
|||
|
|
<div class="callout-title">关键原则</div>
|
|||
|
|
<p>
|
|||
|
|
自进化不等于自动改线上规则。Hermes 负责发现、聚类、建议和生成候选;
|
|||
|
|
最终规则、知识、审批和付款仍然必须经过权限、确认和人工审核。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<section class="section" id="sources">
|
|||
|
|
<div class="section-head">
|
|||
|
|
<div class="section-kicker">11 / SOURCES</div>
|
|||
|
|
<h2>趋势依据与引用来源</h2>
|
|||
|
|
<p class="section-desc">
|
|||
|
|
本文档中的市场趋势、CFO 角色变化、AI Agent 预算、异常检测和费控市场空间,参考了以下公开资料。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<ul class="source-list">
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.gartner.com/en/newsroom/press-releases/2025-11-18-gartner-survey-shows-finance-ai-adoption-remains-steady-in-2025" target="_blank" rel="noreferrer">
|
|||
|
|
Gartner:2025 年财务 AI 采用率与主要用例
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
资料显示财务 AI 采用率为 59%,知识管理、应付流程自动化、错误与异常检测是主要落地场景。
|
|||
|
|
</li>
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.mckinsey.com/featured-insights/week-in-charts/cfos-counting-on-gen-ai" target="_blank" rel="noreferrer">
|
|||
|
|
McKinsey:CFOs counting on gen AI
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
CFO 调研显示,85% 受访者期待 AI 生成洞察、减少人工分析,71% 已使用者认为 AI 提升了生产力。
|
|||
|
|
</li>
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.deloitte.com/us/en/insights/topics/business-strategy-growth/apac-cfo-2025-survey-report.html" target="_blank" rel="noreferrer">
|
|||
|
|
Deloitte APAC CFO 2025 Survey
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
接近一半 CFO 预计生成式 AI 会在两年内显著改变行业、组织和财务职能。
|
|||
|
|
</li>
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.salesforce.com/news/stories/cfos-invest-ai-for-growth/" target="_blank" rel="noreferrer">
|
|||
|
|
Salesforce:CFOs Invest in AI for Growth 2025
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
CFO 平均将 25% AI 预算投入 AI Agent,61% 认为 AI Agent/数字劳动力对竞争力关键。
|
|||
|
|
</li>
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.usbank.com/corporate-and-commercial-banking/treasury-payment-solutions/corporate-payment-services/corporate-credit-cards/5-ways-prevent-expense-report-fraud.html" target="_blank" rel="noreferrer">
|
|||
|
|
U.S. Bank / ACFE:费用报销舞弊风险
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
文章引用 ACFE 2024 Report to the Nations,指出费用报销舞弊平均损失和发现周期,说明费用风险需要持续监控。
|
|||
|
|
</li>
|
|||
|
|
<li>
|
|||
|
|
<a href="https://www.grandviewresearch.com/press-release/global-travel-expense-management-software-market" target="_blank" rel="noreferrer">
|
|||
|
|
Grand View Research:差旅与费用管理软件市场
|
|||
|
|
</a>
|
|||
|
|
<br>
|
|||
|
|
报告预计全球 T&E 管理软件市场到 2030 年达到 106.9 亿美元,AI、OCR、审批自动化和风险管理是关键方向。
|
|||
|
|
</li>
|
|||
|
|
</ul>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
<footer class="footer">
|
|||
|
|
<strong>结论</strong>
|
|||
|
|
<p>
|
|||
|
|
X-Financial 的智能费控方向已经具备清晰技术骨架:
|
|||
|
|
本体语义层负责理解,Orchestrator 负责调度,User Agent 负责用户流程,
|
|||
|
|
Hermes 负责后台内循环,预算、规则、画像和知识库负责提供可解释依据。
|
|||
|
|
继续沿着这条线做深,平台会从“报销工具”成长为企业费用经营与财务风控的智能中台。
|
|||
|
|
</p>
|
|||
|
|
</footer>
|
|||
|
|
</main>
|
|||
|
|
|
|||
|
|
<aside class="toc" aria-label="本页目录">
|
|||
|
|
<div class="toc-title">本页目录</div>
|
|||
|
|
<a href="#top"><span class="dot"></span>顶部概览</a>
|
|||
|
|
<a href="#why"><span class="dot"></span>为什么要做</a>
|
|||
|
|
<a href="#future"><span class="dot"></span>未来地位</a>
|
|||
|
|
<a href="#blue"><span class="dot"></span>蓝海空间</a>
|
|||
|
|
<a href="#goal"><span class="dot"></span>开发目的</a>
|
|||
|
|
<a href="#algorithms"><span class="dot"></span>算法能力</a>
|
|||
|
|
<a href="#modules"><span class="dot"></span>模块清单</a>
|
|||
|
|
<a href="#architecture"><span class="dot"></span>双智能体</a>
|
|||
|
|
<a href="#ontology"><span class="dot"></span>本体优势</a>
|
|||
|
|
<a href="#screens"><span class="dot"></span>关键截图</a>
|
|||
|
|
<a href="#roadmap"><span class="dot"></span>演进路线</a>
|
|||
|
|
<a href="#sources"><span class="dot"></span>趋势来源</a>
|
|||
|
|
<div class="side-note">
|
|||
|
|
打开方式:直接用浏览器打开本 HTML 文件即可。截图通过相对路径引用当前仓库的 `web/UI` 目录。
|
|||
|
|
</div>
|
|||
|
|
</aside>
|
|||
|
|
</div>
|
|||
|
|
</body>
|
|||
|
|
</html>
|