- Extract 711-line App.vue into 15+ focused files across 5 directories - Add data layer (icons, metrics, policies, auditTrail, requests) - Add composables (useNavigation, useRequests, useChat, useToast) - Add layout components (SidebarRail, TopBar, FilterBar) - Add shared components (PanelHead, InfoRow, ToastNotification) - Add business component (RequestTable) and 5 view components - Extract global CSS to assets/styles/global.css - Add start.sh with WSL/Windows cross-platform support - Add .gitignore for node_modules, dist, and IDE dirs
30 KiB
AI 报销操作层 / 影子报销账本开发文档
版本:v0.1
场景范围:仅聚焦“报销”场景,不包含合同审核、采购付款、总账、税务申报等后续场景。
核心思路:以 Agent 层为业务中枢,在现有 OA / ERP / 费控系统之上构建 AI 原生的报销操作层与影子报销账本。
1. 项目定位
1.1 产品名称
暂定名称:
- AI 报销操作层
- 智能报销预审 Agent
- 影子报销账本
- 报销政策 Agent
推荐对外名称:
AI 报销预审中台
推荐对内技术名称:
AI Reimbursement Operation Layer
1.2 一句话定义
在企业现有 OA、ERP、费控系统之上,构建一个以 Agent 为核心的 AI 报销操作层,让员工不用直接面对复杂系统,只需上传票据和说明事项,由 Agent 自动完成材料整理、报销草稿生成、制度预审、缺件提醒、风险解释和后端系统同步。
1.3 核心目标
本系统不是替代 ERP,也不是重新做一套完整费控系统,而是作为现有系统之上的智能操作层。
核心目标包括:
- 降低员工填单难度。
- 减少财务审核打回。
- 提高报销制度执行一致性。
- 沉淀报销过程证据链。
- 为后续扩展付款、采购、合同付款等财务 Agent 场景打基础。
1.4 产品边界
本期做
- 票据 / 附件上传
- OCR 识别
- 报销草稿生成
- 费用类型识别
- 制度规则预审
- 缺件提醒
- 风险解释
- 用户补充确认
- 影子报销账本记录
- 后端系统同步接口预留
- 审计日志与规则命中记录
本期不做
- 不做正式总账
- 不做凭证过账
- 不做税务申报
- 不做银行支付
- 不做完整预算控制
- 不做合同审核
- 不替换原 OA / ERP / 费控系统
2. 总体架构
2.1 架构原则
系统采用“前台 AI 操作层 + 中台 Agent 编排 + 影子报销账本 + 后端系统同步”的架构。
核心原则:
用户体验在 AI 报销操作层,正式账务仍在 ERP。
Agent 负责理解、编排与交互;规则负责判断;系统负责留痕;后端负责正式审批和入账。
2.2 架构分层
系统分为 6 层:
- 用户与入口层
- AI 报销操作层
- Agent 层
- 影子报销账本层
- Policy & Evidence 层
- System Adapter / 后端集成层
2.3 分层说明
2.3.1 用户与入口层
面向对象:
- 员工
- 财务审核人员
- 制度管理员
- 系统管理员
入口方式:
- Web
- 企业微信
- 钉钉
- OA 工作台
- 移动端 H5
职责:
- 接收用户报销意图
- 上传票据和附件
- 展示预审结果
- 支持补件交互
- 支持确认提交
2.3.2 AI 报销操作层
这是用户直接感知的业务操作层。
主要功能:
- 对话式报销入口
- 票据 / 附件上传
- 报销草稿展示
- 风险与缺件提示
- 预审结果解释
- 用户确认提交
该层的目标是让用户不再直接面对复杂 ERP 字段,而是通过自然语言、文件上传和确认操作完成报销。
2.3.3 Agent 层
Agent 层是系统核心中枢,所有业务流程围绕 Agent 层展开。
Agent 层负责:
- 理解用户意图
- 编排任务流程
- 调用 OCR 工具
- 调用规则引擎
- 查询主数据
- 生成报销草稿
- 发起补件对话
- 输出风险解释
- 同步后端系统
核心组件:
- 受理 Agent
- 单据解析 Agent
- 规则校验 Agent
- 解释与补件 Agent
- 同步执行 Agent
- Agent Orchestrator / Workflow
2.3.4 影子报销账本层
影子报销账本层用于沉淀报销业务事实,但不是正式总账。
它记录:
- 报销申请
- 报销明细
- 票据索引
- 附件索引
- 风险记录
- 规则命中记录
- 补件会话记录
- 后端同步状态
作用:
- 为前台提供统一业务视图
- 为 Agent 提供流程状态
- 为审计提供过程留痕
- 为后端系统同步提供中间状态
注意:
影子报销账本不是会计账,不承担正式记账职责。
2.3.5 Policy & Evidence 层
该层负责规则判断和证据归档。
包含:
- 报销制度库
- 费用标准库
- 费用类型字典
- 城市等级 / 补贴规则
- 发票验真结果
- 发票查重结果
- 审计日志
- 证据归档库
作用:
- 为 Agent 提供制度依据
- 为规则引擎提供结构化规则
- 为财务审核提供可追溯证据
- 为后续审计提供完整证据链
2.3.6 System Adapter / 后端集成层
负责连接企业已有系统。
可对接系统:
- OA / BPM 审批系统
- ERP / 财务系统
- 费控报销系统
- 预算系统
- 主数据系统
- 发票平台
- 税务接口
- 财务共享中心
- 企业微信 / 钉钉消息系统
职责:
- 查询主数据
- 查询预算信息
- 查询员工信息
- 写入报销草稿
- 发起审批流程
- 同步审批状态
- 同步归档结果
3. 核心业务流程
3.1 流程总览
完整流程如下:
- 用户上传票据与出差信息
- Agent 受理并理解任务
- Agent 调用 OCR 和解析工具
- Agent 识别费用类型并生成影子报销记录
- Agent 调用规则引擎完成制度预审
- Agent 输出风险解释和缺件提醒
- 用户补充材料并确认
- Agent 生成标准报销单
- Agent 同步 OA / ERP / 费控系统
- 后端完成正式审批、入账与归档
3.2 主流程时序
sequenceDiagram
participant U as 用户
participant UI as AI报销操作层
participant AO as Agent Orchestrator
participant OCR as OCR/票据识别
participant Rule as 规则引擎
participant Ledger as 影子报销账本
participant Adapter as 后端适配器
participant ERP as OA/ERP/费控系统
U->>UI: 上传票据/说明报销事项
UI->>AO: 创建报销任务
AO->>OCR: 调用票据识别
OCR-->>AO: 返回结构化票据信息
AO->>Ledger: 创建影子报销记录
AO->>Rule: 调用制度预审
Rule-->>AO: 返回规则命中与风险结果
AO->>UI: 展示风险/缺件/草稿
U->>UI: 补充材料并确认
UI->>AO: 提交确认
AO->>Ledger: 更新报销状态
AO->>Adapter: 生成标准报销单并同步
Adapter->>ERP: 写入报销单/发起审批
ERP-->>Adapter: 返回审批单号/状态
Adapter-->>Ledger: 回写后端同步状态
3.3 Agent 驱动运行逻辑
flowchart TD
A[用户上传票据与出差信息] --> B[受理 Agent 理解任务]
B --> C[单据解析 Agent 识别票据与附件]
C --> D[生成影子报销记录]
D --> E[规则校验 Agent 调用制度规则]
E --> F{是否存在风险或缺件}
F -- 是 --> G[解释与补件 Agent 发起补件交互]
G --> H[用户补充材料并确认]
H --> E
F -- 否 --> I[同步执行 Agent 生成标准报销单]
I --> J[同步 OA / ERP / 费控系统]
J --> K[后端正式审批、入账与归档]
4. Agent 设计
4.1 Agent 总体分工
| Agent | 职责 | 输入 | 输出 |
|---|---|---|---|
| 受理 Agent | 理解用户报销意图,收集上下文 | 用户自然语言、上传文件、历史任务 | 报销任务、材料清单、缺失信息 |
| 单据解析 Agent | OCR 识别、字段抽取、费用归类 | 发票、行程单、酒店单、支付截图 | 结构化票据信息、费用明细建议 |
| 规则校验 Agent | 制度预审、超标、查重、合规判断 | 报销草稿、规则库、主数据 | 规则命中记录、风险等级 |
| 解释与补件 Agent | 解释风险、提示缺件、引导修改 | 风险结果、缺件列表、制度依据 | 用户可理解的解释、补件任务 |
| 同步执行 Agent | 生成标准报销单,调用后端接口 | 最终确认数据、影子账本记录 | 后端报销单号、审批状态 |
4.2 Agent Orchestrator
Agent Orchestrator 是流程编排器,负责管理任务状态和 Agent 调度。
职责:
- 创建任务
- 维护任务状态
- 决定下一步调用哪个 Agent
- 管理多轮对话上下文
- 管理工具调用
- 处理失败重试
- 记录流程日志
- 管理人工确认节点
建议状态机:
stateDiagram-v2
[*] --> Created: 创建任务
Created --> MaterialCollecting: 收集材料
MaterialCollecting --> Parsing: 解析单据
Parsing --> DraftGenerated: 生成草稿
DraftGenerated --> PreChecking: 制度预审
PreChecking --> NeedSupplement: 存在缺件/风险
NeedSupplement --> MaterialCollecting: 用户补件
PreChecking --> PendingUserConfirm: 预审通过
PendingUserConfirm --> Submitting: 用户确认
Submitting --> Synced: 同步后端成功
Submitting --> SyncFailed: 同步失败
SyncFailed --> Submitting: 重试
Synced --> [*]
4.3 Agent 调用原则
Agent 不直接决定最终财务结果,只负责预审和建议。
原则:
- 低风险问题可自动提示。
- 中风险问题需要用户确认。
- 高风险问题进入人工审核。
- 所有规则命中必须留痕。
- 所有 AI 解释必须能追溯到制度或证据。
- 正式审批和入账仍以后端系统为准。
5. 核心数据模型
5.1 主要实体
| 实体 | 说明 |
|---|---|
| ReimbursementTask | 报销任务,Agent 处理的最小任务单元 |
| ShadowReimbursement | 影子报销记录,表示一次报销业务事实 |
| ReimbursementItem | 报销明细 |
| ExpenseDocument | 票据 / 附件 |
| ExpensePolicy | 报销制度 |
| ExpenseRule | 报销规则 |
| RuleHit | 规则命中记录 |
| RiskFinding | 风险提示 |
| SupplementRequest | 补件请求 |
| ConversationRecord | 会话记录 |
| SyncRecord | 后端同步记录 |
| AuditLog | 审计日志 |
5.2 表结构建议
5.2.1 reimbursement_task 报销任务表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 任务ID |
| user_id | string | 发起人ID |
| company_id | string | 企业ID |
| task_type | string | 任务类型,如 travel_expense |
| status | string | 任务状态 |
| user_intent | text | 用户原始意图 |
| current_agent | string | 当前处理 Agent |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
5.2.2 shadow_reimbursement 影子报销记录表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 影子报销ID |
| task_id | string | 关联任务ID |
| applicant_id | string | 报销人 |
| department_id | string | 部门 |
| cost_center_id | string | 成本中心 |
| project_id | string | 项目ID |
| reimbursement_type | string | 报销类型 |
| reason | text | 报销事由 |
| total_amount | decimal | 总金额 |
| currency | string | 币种 |
| risk_level | string | 风险等级 |
| precheck_status | string | 预审状态 |
| backend_system | string | 目标后端系统 |
| backend_bill_id | string | 后端单据ID |
| sync_status | string | 同步状态 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
5.2.3 reimbursement_item 报销明细表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 明细ID |
| reimbursement_id | string | 影子报销ID |
| expense_type | string | 费用类型 |
| amount | decimal | 金额 |
| tax_amount | decimal | 税额 |
| occurred_at | date | 费用发生日期 |
| city | string | 发生城市 |
| vendor_name | string | 商户名称 |
| invoice_id | string | 关联票据ID |
| policy_status | string | 规则校验状态 |
| risk_level | string | 风险等级 |
| remark | text | 备注 |
5.2.4 expense_document 票据附件表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 文件ID |
| reimbursement_id | string | 影子报销ID |
| item_id | string | 明细ID |
| document_type | string | 发票、行程单、酒店流水、支付截图等 |
| file_url | string | 文件地址 |
| ocr_status | string | OCR 状态 |
| extracted_json | json | OCR 抽取结果 |
| invoice_code | string | 发票代码 |
| invoice_number | string | 发票号码 |
| invoice_date | date | 开票日期 |
| amount | decimal | 金额 |
| tax_amount | decimal | 税额 |
| seller_name | string | 销售方 |
| buyer_name | string | 购买方 |
| verify_status | string | 验真状态 |
| duplicate_status | string | 查重状态 |
| created_at | datetime | 创建时间 |
5.2.5 expense_rule 规则表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 规则ID |
| rule_code | string | 规则编码 |
| rule_name | string | 规则名称 |
| expense_type | string | 适用费用类型 |
| condition_json | json | 条件表达式 |
| action | string | 命中动作 |
| severity | string | 风险等级 |
| message_template | text | 提示文案模板 |
| policy_ref | string | 制度依据 |
| enabled | boolean | 是否启用 |
| version | string | 规则版本 |
5.2.6 rule_hit 规则命中表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 命中ID |
| reimbursement_id | string | 报销ID |
| item_id | string | 明细ID |
| rule_id | string | 规则ID |
| severity | string | 风险等级 |
| hit_result | json | 命中详情 |
| explanation | text | 解释说明 |
| suggestion | text | 修改建议 |
| created_at | datetime | 创建时间 |
5.2.7 supplement_request 补件请求表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 补件请求ID |
| reimbursement_id | string | 报销ID |
| request_type | string | 补充附件、补充说明、修改字段 |
| target_item_id | string | 关联明细ID |
| message | text | 补件提示 |
| status | string | 待补充、已补充、已关闭 |
| user_response | text | 用户回复 |
| created_at | datetime | 创建时间 |
| resolved_at | datetime | 完成时间 |
5.2.8 sync_record 后端同步记录表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 同步ID |
| reimbursement_id | string | 报销ID |
| target_system | string | 目标系统 |
| request_payload | json | 请求报文 |
| response_payload | json | 响应报文 |
| sync_status | string | 成功、失败、重试中 |
| backend_bill_id | string | 后端单据ID |
| error_message | text | 错误信息 |
| created_at | datetime | 创建时间 |
6. 枚举设计
6.1 报销任务状态
| 编码 | 名称 |
|---|---|
| created | 已创建 |
| material_collecting | 收集中 |
| parsing | 解析中 |
| draft_generated | 草稿已生成 |
| prechecking | 预审中 |
| need_supplement | 需要补件 |
| pending_user_confirm | 待用户确认 |
| submitting | 提交中 |
| synced | 已同步 |
| sync_failed | 同步失败 |
| closed | 已关闭 |
6.2 费用类型
| 编码 | 名称 |
|---|---|
| travel_transport | 差旅交通费 |
| travel_hotel | 差旅住宿费 |
| travel_meal | 差旅餐补 |
| local_transport | 市内交通费 |
| business_meal | 业务招待费 |
| office_supply | 办公用品费 |
| communication | 通讯费 |
| other | 其他 |
6.3 票据类型
| 编码 | 名称 |
|---|---|
| vat_invoice | 增值税发票 |
| train_ticket | 火车票 |
| flight_itinerary | 航空行程单 |
| taxi_receipt | 打车票据 |
| hotel_bill | 酒店流水 |
| payment_screenshot | 支付截图 |
| travel_order | 行程单 |
| other_attachment | 其他附件 |
6.4 风险等级
| 编码 | 名称 | 处理方式 |
|---|---|---|
| low | 低风险 | 提醒用户 |
| medium | 中风险 | 需要用户确认或补充说明 |
| high | 高风险 | 建议人工审核 |
| blocked | 阻断 | 不允许提交 |
6.5 规则动作
| 编码 | 名称 |
|---|---|
| pass | 通过 |
| warn | 警告 |
| require_explanation | 要求说明 |
| require_attachment | 要求补附件 |
| require_approval | 要求特殊审批 |
| block | 阻断提交 |
7. 规则引擎设计
7.1 规则类型
MVP 阶段建议支持以下规则:
- 必填字段校验
- 附件完整性校验
- 票据验真校验
- 重复报销校验
- 金额超标校验
- 日期合理性校验
- 出差期间匹配校验
- 费用类型与票据类型匹配校验
- 发票抬头校验
- 项目 / 成本中心校验
7.2 规则示例
规则 1:住宿费超标
{
"rule_code": "TRAVEL_HOTEL_LIMIT",
"rule_name": "住宿费标准校验",
"expense_type": "travel_hotel",
"condition": {
"compare": "amount_per_night",
"operator": ">",
"target": "policy.hotel_limit"
},
"action": "require_explanation",
"severity": "medium",
"message_template": "住宿费超出当前城市和职级标准,请补充超标说明或发起特殊审批。",
"policy_ref": "差旅报销制度-住宿标准"
}
规则 2:缺少酒店流水
{
"rule_code": "HOTEL_BILL_REQUIRED",
"rule_name": "住宿费必须上传酒店流水",
"expense_type": "travel_hotel",
"condition": {
"required_document_type": "hotel_bill"
},
"action": "require_attachment",
"severity": "medium",
"message_template": "当前住宿费缺少酒店流水,请补充上传。",
"policy_ref": "差旅报销制度-附件要求"
}
规则 3:票据疑似重复
{
"rule_code": "DUPLICATE_INVOICE_CHECK",
"rule_name": "重复发票检查",
"expense_type": "*",
"condition": {
"duplicate_keys": ["invoice_code", "invoice_number", "amount", "invoice_date"]
},
"action": "block",
"severity": "blocked",
"message_template": "检测到该发票可能已被报销,请确认或联系财务处理。",
"policy_ref": "费用报销管理办法-重复报销"
}
7.3 规则结果结构
{
"precheck_status": "need_supplement",
"risk_level": "medium",
"rule_hits": [
{
"rule_code": "HOTEL_BILL_REQUIRED",
"severity": "medium",
"message": "当前住宿费缺少酒店流水,请补充上传。",
"suggestion": "请上传酒店结账单或住宿明细流水。",
"policy_ref": "差旅报销制度-附件要求"
}
]
}
8. API 设计
8.1 创建报销任务
POST /api/reimbursement/tasks
请求:
{
"user_id": "U001",
"company_id": "C001",
"user_intent": "我要报这次北京出差的费用",
"entry_channel": "web"
}
响应:
{
"task_id": "T202604240001",
"status": "material_collecting"
}
8.2 上传票据附件
POST /api/reimbursement/tasks/{task_id}/documents
请求:
{
"document_type": "vat_invoice",
"file_url": "https://example.com/file/invoice001.pdf"
}
响应:
{
"document_id": "D001",
"ocr_status": "pending"
}
8.3 启动 Agent 处理
POST /api/reimbursement/tasks/{task_id}/agent/run
请求:
{
"start_from": "intake",
"mode": "precheck"
}
响应:
{
"task_id": "T202604240001",
"status": "parsing",
"current_agent": "document_parse_agent"
}
8.4 获取报销草稿
GET /api/reimbursement/tasks/{task_id}/draft
响应:
{
"reimbursement_id": "R001",
"reason": "北京出差",
"total_amount": 2380.00,
"items": [
{
"item_id": "I001",
"expense_type": "travel_hotel",
"amount": 1200.00,
"occurred_at": "2026-04-20",
"risk_level": "medium"
}
],
"precheck_status": "need_supplement"
}
8.5 获取预审结果
GET /api/reimbursement/tasks/{task_id}/precheck-result
响应:
{
"precheck_status": "need_supplement",
"risk_level": "medium",
"summary": "当前报销单存在 1 个缺件问题和 1 个超标风险。",
"rule_hits": [
{
"rule_code": "HOTEL_BILL_REQUIRED",
"severity": "medium",
"message": "住宿费缺少酒店流水。",
"suggestion": "请上传酒店流水。"
}
]
}
8.6 用户补件
POST /api/reimbursement/tasks/{task_id}/supplements
请求:
{
"supplement_request_id": "S001",
"response_text": "已补充酒店流水",
"document_ids": ["D003"]
}
响应:
{
"status": "received",
"next_action": "rerun_precheck"
}
8.7 用户确认提交
POST /api/reimbursement/tasks/{task_id}/submit
请求:
{
"confirmed": true,
"submit_to": "expense_system"
}
响应:
{
"status": "submitting",
"sync_id": "SYNC001"
}
8.8 查询同步状态
GET /api/reimbursement/tasks/{task_id}/sync-status
响应:
{
"sync_status": "success",
"target_system": "expense_system",
"backend_bill_id": "BX202604240001"
}
9. 前端页面设计
9.1 页面清单
MVP 阶段建议包含以下页面:
- 报销入口页
- 票据上传页
- 报销草稿页
- 预审结果页
- 补件交互页
- 提交确认页
- 任务详情页
- 财务审核辅助页
- 制度规则管理页
- 审计日志页
9.2 报销入口页
核心元素:
- 对话输入框
- 上传按钮
- 最近任务
- 常用报销类型
- 智能引导问题
示例提示:
- “我要报一次差旅”
- “帮我看这些票能不能报”
- “帮我生成报销单”
- “这张发票为什么不合规?”
9.3 报销草稿页
展示内容:
- 报销人
- 部门
- 成本中心
- 项目
- 报销事由
- 费用明细
- 票据附件
- 自动识别结果
- 可编辑字段
- 预审状态
9.4 预审结果页
展示内容:
- 总体结论
- 风险等级
- 通过项
- 风险项
- 缺件项
- 命中规则
- 制度依据
- 修改建议
- 一键补件按钮
- 人工确认按钮
9.5 财务审核辅助页
展示内容:
- 报销单摘要
- AI 预审结论
- 规则命中列表
- 用户补件记录
- 附件证据链
- 同步状态
- 审计日志
10. 后端服务设计
10.1 服务拆分建议
MVP 阶段可采用模块化单体,后续再微服务化。
建议模块:
| 模块 | 说明 |
|---|---|
| user-service | 用户与权限 |
| task-service | 报销任务管理 |
| document-service | 文件与票据管理 |
| agent-service | Agent 编排 |
| ocr-service | OCR 调用封装 |
| rule-service | 规则引擎 |
| ledger-service | 影子账本 |
| evidence-service | 证据归档 |
| adapter-service | 后端系统适配 |
| audit-service | 审计日志 |
10.2 推荐技术栈
可选方案:
前端
- React / Vue
- Ant Design / Element Plus
- 企业微信 / 钉钉 H5 SDK
后端
- Java Spring Boot
- Python FastAPI
- Node.js NestJS
数据库
- PostgreSQL / MySQL
- Redis
- MinIO / OSS 文件存储
- Elasticsearch / OpenSearch,可选,用于检索
AI / Agent
- Agent Orchestrator 自研
- LangGraph / CrewAI / AutoGen / 自定义 Workflow,可选
- 大模型 API
- OCR API
- 向量数据库,可选
规则引擎
- JSON Rule Engine
- Drools
- 自研轻量规则引擎
11. 权限与安全
11.1 权限角色
| 角色 | 权限 |
|---|---|
| 员工 | 创建报销、上传材料、查看自己的任务 |
| 财务审核人员 | 查看待审核报销、查看预审结果、处理风险 |
| 制度管理员 | 维护制度、规则、费用标准 |
| 系统管理员 | 管理组织、用户、接口配置 |
| 审计人员 | 查看日志和证据链 |
11.2 安全要求
- 文件上传需做病毒扫描。
- 发票、身份证、银行卡等敏感信息需脱敏展示。
- 所有 Agent 操作需记录日志。
- 所有规则版本需保留历史。
- 所有用户确认动作需留痕。
- 后端接口需有签名、鉴权和重放保护。
- 不允许 Agent 绕过人工确认直接提交高风险单据。
12. 审计与可解释性
12.1 必须留痕的动作
- 用户上传文件
- OCR 识别结果
- Agent 调用记录
- 规则命中记录
- 用户补件记录
- 用户确认记录
- 后端同步请求
- 后端同步响应
- 审核人处理记录
12.2 解释输出模板
风险解释建议采用统一格式:
问题类型:住宿费超标
命中规则:TRAVEL_HOTEL_LIMIT
制度依据:差旅报销制度-住宿标准
问题说明:当前住宿费为 680 元/晚,超过该城市标准 500 元/晚。
建议处理:请补充超标说明,或发起特殊审批。
风险等级:中风险
13. MVP 版本规划
13.1 MVP 目标
用最小范围跑通“上传材料 → 识别 → 草稿 → 预审 → 补件 → 确认 → 同步”的完整闭环。
13.2 MVP 功能范围
必做
- 用户创建报销任务
- 上传票据 / 附件
- OCR 识别
- 自动生成报销草稿
- 费用类型识别
- 基础规则预审
- 风险与缺件提示
- 用户补件
- 用户确认提交
- 影子报销账本
- 审计日志
- 模拟后端同步
可延后
- 多企业多租户
- 复杂审批流
- 深度 ERP 接口
- 发票实时验真
- 预算强控制
- 移动端完整体验
- 多语言
- 行业模板市场
13.3 MVP 优先支持的报销类型
建议优先支持:
差旅报销
原因:
- 票据类型丰富
- 规则典型
- 缺件场景多
- 价值容易演示
- 客户容易理解
优先支持票据:
- 增值税发票
- 火车票
- 机票行程单
- 酒店流水
- 打车票据
- 支付截图
14. 里程碑计划
阶段 1:原型验证
目标:
- 完成核心流程 Demo
- 完成影子账本基础表
- 完成 OCR 接入
- 完成 5 条基础规则
输出:
- Web Demo
- 报销任务流
- 草稿生成页面
- 预审结果页面
阶段 2:MVP 可用版本
目标:
- 完整跑通差旅报销
- 支持多轮补件
- 支持规则命中留痕
- 支持模拟后端同步
输出:
- MVP 系统
- 规则配置后台
- 审计日志
- 财务审核辅助页
阶段 3:试点企业接入
目标:
- 接入一家试点企业
- 对接其 OA / 费控 / ERP 中至少一个系统
- 根据真实制度配置规则
- 验证打回率降低效果
输出:
- 试点报告
- 规则模板
- 接口适配经验
- ROI 数据
阶段 4:产品化
目标:
- 多企业配置
- 多制度模板
- 多后端适配器
- 管理后台完善
- 权限与安全完善
输出:
- 标准产品版本
- 部署手册
- 运维手册
- 行业模板
15. 关键指标
15.1 业务指标
| 指标 | 说明 |
|---|---|
| 自动草稿生成率 | 上传材料后成功生成草稿的比例 |
| 预审命中率 | 规则识别出问题的比例 |
| 打回率降低 | 接入前后报销打回率变化 |
| 平均填单时间 | 员工完成报销所需时间 |
| 平均审核时间 | 财务审核单据所需时间 |
| 补件一次完成率 | 用户一次补齐材料的比例 |
15.2 技术指标
| 指标 | 说明 |
|---|---|
| OCR 准确率 | 关键字段识别准确率 |
| 规则执行耗时 | 单次预审耗时 |
| Agent 成功完成率 | Agent 完整跑完流程的比例 |
| 后端同步成功率 | 同步 OA / ERP / 费控成功率 |
| 系统响应时间 | 主要接口响应时延 |
| 任务异常率 | Agent 流程失败比例 |
16. 风险与应对
16.1 规则不准确
风险:
- 制度复杂,规则配置错误会导致误判。
应对:
- 规则上线前必须人工确认。
- 规则命中要显示依据。
- 高风险结果只建议,不自动阻断。
16.2 OCR 识别错误
风险:
- 票据字段识别不准,导致草稿错误。
应对:
- 关键字段允许人工修改。
- 低置信度字段高亮提示。
- 原图与识别结果并排展示。
16.3 后端系统难对接
风险:
- 企业 ERP / OA 接口不统一。
应对:
- 先做模拟同步。
- 后端适配器标准化。
- 支持 API 与 RPA 两种方式。
16.4 AI 幻觉
风险:
- Agent 可能生成不符合制度的解释。
应对:
- 所有解释必须基于规则命中和制度片段。
- 没有依据时必须显示“未找到明确制度依据”。
- 高风险判断进入人工审核。
16.5 客户担心替换原系统
风险:
- 客户认为系统会冲击现有 ERP / 费控系统。
应对:
- 明确定位为“前台 AI 操作层”。
- 正式审批、入账、归档仍在后端系统完成。
- 强调不替换原系统。
17. 后续扩展方向
本期只做报销,后续可扩展到:
- 付款申请
- 采购申请
- 合同付款
- 供应商对账
- 发票入账
- 预算执行分析
- 财务共享审核 Agent
长期目标:
构建企业财务运营 Agent Layer。
18. 附录:推荐目录结构
ai-reimbursement-agent/
├── frontend/
│ ├── pages/
│ ├── components/
│ └── services/
├── backend/
│ ├── task-service/
│ ├── document-service/
│ ├── agent-service/
│ ├── rule-service/
│ ├── ledger-service/
│ ├── evidence-service/
│ ├── adapter-service/
│ └── audit-service/
├── database/
│ ├── migrations/
│ └── seed/
├── docs/
│ ├── api.md
│ ├── rules.md
│ ├── data-model.md
│ └── deployment.md
└── README.md
19. 附录:最小开发任务拆分
后端任务
- 创建报销任务接口
- 上传附件接口
- OCR 调用封装
- 影子报销账本表
- 报销明细表
- 规则引擎基础能力
- 规则命中记录
- 补件请求接口
- 后端同步模拟接口
- 审计日志
前端任务
- 报销入口页
- 上传附件组件
- 报销草稿页
- 预审结果页
- 补件交互页
- 提交确认页
- 财务审核辅助页
Agent 任务
- 受理 Agent
- 单据解析 Agent
- 规则校验 Agent
- 解释与补件 Agent
- 同步执行 Agent
- Orchestrator 状态机
规则任务
- 必填字段规则
- 缺附件规则
- 重复发票规则
- 金额超标规则
- 日期异常规则
- 费用类型匹配规则
20. 总结
本系统的核心不是重新做一套报销系统,也不是替换 ERP,而是在企业现有系统之上构建一个以 Agent 为核心的 AI 报销操作层。
它的关键价值在于:
- 员工只面对简单前台。
- Agent 负责理解、编排和补件。
- 影子报销账本沉淀业务事实。
- Policy & Evidence 层保证判断可解释、证据可追溯。
- 后端 OA / ERP / 费控系统继续负责正式审批、入账和归档。
一句话总结:
前台体验在 AI 报销操作层,正式账务仍在 ERP;所有业务流程围绕 Agent 层展开。