📝 修订记录
| 版本 | 日期 | 变更摘要 |
|---|---|---|
| v0.1 | 2026-05-10 | 初稿框架(问题域 + 解决方案结构) |
| v1.0 | 2026-05-10 | 设计方案 v1.0("报告模板即系统"为核心) |
| v2.0 | 2026-05-10 | 升级为论文结构:问题域 + 业界方案分析 + 设计方案 |
让我们从一个具体场景开始。
某药企的省区经理,想要了解:"我这个月在广东省的科莫非,进去了哪些医院?哪些科室在用?流向和去年同期相比是什么情况?"
这个问题对于一个熟悉 ERP 的业务人员来说,意味着:
这个过程可能需要 数小时。
现在,把这个场景换成:"帮我生成这个月广东省的科莫非医院进院分析报告,包括竞争格局、药剂科攻关路径、重点科室 KOL 分析"。
这就是我们正在试图解决的问题。
这个问题并不是一个单纯的技术问题。它涉及三个相互关联的层面:
ERP 和数据库存储了业务数据,但数据的业务语义隐含在代码里,而不是表名和字段名里。
一个具体的例子:
ERP 数据库的真实表名: t_drug_sale_2024 t_hospital_info t_ida_patient ERP 数据库的真实字段名: DRUG_ID, SALE_AMT, REGION_ID, FLOW_STATUS HOSP_ID, HOSP_LEVEL, HOSP_TYPE IDA_PATIENT_CNT, FLOW_QTY
这些表名和字段名,对于 AI 模型来说是无意义的噪音。AI 无法从 FLOW_QTY 理解这是"流向数量",更无法理解"流向 > 0 代表已覆盖、= 0 代表未覆盖、< 0 代表退货"这样的业务语义。
问题的根源:ERP 系统的数据模型是给开发人员设计的,不是给 AI 设计的。业务逻辑存在于开发人员的代码注释里,而不是机器可读的元数据里。
在传统 ERP 架构中,业务逻辑以表单/流程/报表的形式硬编码在系统中:
业务需求 → ERP 顾问提出 → 开发排期 → 设计 → 开发 → 测试 → 上线 ↑ 一个"简单"的需求变更,需要数周甚至数月
问题的根源:业务逻辑和系统代码耦合在一起。业务人员无法直接修改业务逻辑,必须通过"改表单/流程 → 改代码"的方式,层层传递、层层放大。
传统 ERP 的交互模式是表单驱动的:
这种模式的局限在于:用户只能问系统预设的问题。如果业务人员想知道"哪些医院的进院机会和它的 IDA 患者数不匹配"——这是一个预设表单里没有的问题,系统无法回答。
这三个层面的问题在 ERP 系统存在了二十多年,但为什么现在才成为焦点?
在 LLM 出现之前,AI 处理结构化业务数据的能力非常有限。GPT-4、Claude 等 LLM 的出现,第一次让机器能够:
生成一份医院调研报告,需要: 1. 查询 ERP 数据(流向、患者数、进院状态) 2. 检索知识库(竞品信息、学术文献) 3. 搜索网络(医院信息、KOL 资料) 4. 汇总生成报告 5. 质量审核 6. 推送通知
单个 AI 模型无法完成这样的任务链。Multi-Agent 协作架构让这成为可能。
在 AI Native 架构中,业务逻辑可以以文档化的 Skill 形式存在——一份包含业务定义、API 规范、调用脚本的技能包。
这意味着:业务人员(通过 AI)可以修改业务逻辑,而不需要经过开发流程。
约束 1:ERP 系统是只读依赖
我们不需要向 ERP 写入任何数据。所有数据访问都是读取操作。
约束 2:ERP 表结构和业务语义不在文档中
ERP 运行了 10 年,数据的业务含义主要存在于开发人员的代码注释和业务人员的操作经验中。
约束 3:两个团队,两个系统
AI 团队依赖 ERP 团队开放数据,但 ERP 团队有自己的工作优先级。两个团队之间的关系是单向依赖。
| 团队 | 系统 | 数据 |
|---|---|---|
| AI 团队(我们) | Agent Platform + Skill 体系 | 需要从 ERP 读取业务数据 |
| ERP 团队 | 传统 ERP 系统 | 持有原始数据,但接口未开放 |
约束 4:数据质量存在分层
| 数据源 | 可靠性 | 说明 |
|---|---|---|
| ERP 数据库 | 高 | 原始业务数据,可追溯 |
| 大数据平台 | 中 | 经过 ETL 处理,可能有口径差异 |
| 临采数据 | 低 | 业务人员手工填报,准确度有限 |
| 联网搜索 | 不确定 | 可能过时或错误 |
企业智能业务平台的核心问题是:在不改变现有 ERP 系统的前提下,如何让 AI Agent 能够理解 ERP 数据的业务语义,并以自然语言为接口,向业务人员提供智能化的数据分析和报告生成服务。
这个问题包含三个子问题:
核心问题:用户用自然语言提问,AI 自动生成 SQL 查询语句,从数据库提取数据。
代表项目:Vanna.ai、Dataherald、Wren AI、Awesome-Text2SQL
| 基准数据集 | 说明 | 最佳准确率 |
|---|---|---|
| WikiSQL | 简单单表查询 | ~90% |
| Spider | 跨表复杂查询 | ~75% |
| BIRD | 真实企业数据库,含 12 个业务场景 | 39-60% |
BIRD 基准测试的结论:Text-to-SQL 在真实企业场景下的表现显著低于学术基准。
t_drug_sale_2024 对 AI 来说是噪音关键不是让 AI 更好地猜 SQL,而是先让 AI 理解业务语义。
核心问题:在数据库和 AI 之间建立一层"业务语义映射",让 AI 理解"流向数量"而不是 FLOW_QTY 字段。
代表产品:Cube.dev、dbt Semantic Layer、AtScale、Prometheus
用户问题:「广东省科莫非流向最高的 10 家医院」
↓ 语义层翻译
AI 理解:「流向数量按省=广东、品种=科莫非、降序取 Top10」
↓ 映射到指标
指标定义:flow_qty(原生指标)× 品种维度 × 组织维度
↓ SQL 生成
SELECT hospital_name, flow_qty FROM fact_flow
WHERE province = '广东省' AND drug = '科莫非'
ORDER BY flow_qty DESC LIMIT 10
语义层不是技术基础设施,而是数据治理工具。建设语义层的本质是建立一套业务人员能够理解的指标定义体系。
核心问题:将企业的业务知识(流程、规则、术语)建立为知识图谱,AI 在回答问题时首先检索相关知识,再结合数据库查询。
仅有 schema 描述不够,需要领域知识库 + 历史查询模式来补充上下文。这正是我们的"BP 数字指标体系"和"检索指南"的价值所在。
代表动向:
SAP 在 2025 年底的 Cloud ERP Private 版本中,核心升级就是 Semantic Data Foundation(语义数据基础层)——明确承认了语义层是 AI 和 ERP 数据之间的关键桥接。
Microsoft:Copilot + Semantic Layer
在 Microsoft 365 生态中嵌入 Copilot,用户可以在 Excel、Teams、Power BI 中用自然语言查询 ERP 数据。
优势:与 Microsoft 365 生态深度集成
局限:主要支持 Microsoft 数据生态,对国产 ERP 的支持有限
SAP:Joule + 语义数据基础层
SAP 是全球最大企业软件厂商之一,S/4HANA 是最先进的 ERP 之一,语义层建设最系统。
优势:最系统化的语义层建设
局限:部署和实施成本高,主要面向大型企业
国产 ERP 厂商:用友、金蝶
在"增强现有 ERP"这个方向上和我们试图解决的问题非常接近。
局限:语义层建设薄弱,依赖实施顾问的经验,没有系统化的方法论。这正是我们的机会。
定位:Text-to-SQL RAG 框架,专门针对企业私有数据库。
用户问题 → RAG(检索相似 SQL + schema 上下文)→ LLM → SQL → 执行 → 答案 ↑ 训练数据:历史 SQL 查询对(用户自己提供)
优势:开源(MIT License),支持自定义训练,支持 PostgreSQL、MySQL、SQL Server、Snowflake 等主流数据库
局限:主要解决 Text-to-SQL 问题,不解决"生成完整报告"的问题
定位:开源语义层平台,专为 LLM & AI 应用设计。
业务人员 → 定义指标(Revenue, Flow_Qty)+ 维度(Province, Drug)
↓
Cube 自动生成 REST/GraphQL/SQL API
↓
AI 应用调用 API,AI 不知道底层数据库结构
优势:开源(Apache 2.0),支持 dbt 集成,自动生成 API,缓存层减少数据库压力
定位:在 dbt(数据转换工具)生态内建的语义层。
优势:与 dbt 生态无缝集成,指标定义版本化管理,支持复杂指标
定位:Anthropic 提出的开放协议,标准化 LLM 与外部数据源/工具的连接。
AI 应用 ←→ MCP Server(标准化接口)←→ 外部工具/数据源 ↑ 一次连接,处处使用
优势:开放标准(2024 年底),多厂商支持,已有 10000+ MCP Server(截至 2025 年底),安全性高
| 维度 | Text-to-SQL | Semantic Layer | AI-Native ERP | Multi-Agent + Skill |
|---|---|---|---|---|
| 核心问题 | 自然语言 → SQL | 字段 → 业务概念 | 表单 → 对话 | 报告模板即系统 |
| 技术成熟度 | 高 | 高 | 中 | 中 |
| ERP 依赖度 | 低 | 低 | 高 | 低 |
| 业务自主性 | 低 | 中 | 中 | 高 |
| 能否生成报告 | ❌ | ❌ | ✅(部分) | ✅(完整) |
核心结论:
以 Semantic Layer 为数据基础,以 Multi-Agent 协作为执行架构,以"报告模板"为业务逻辑载体,构建一套 AI Native 的企业智能业务平台。
四个关键特征:
传统 ERP 系统以表单和流程为核心:
定义表单/流程 → 开发 ERP 模块 → 用户填表单 → 流程审批 → 生成报告 ↑ 变化时需要改代码、排期,开发、测试、上线
业务逻辑不再以代码形式存在,而是以文档化的"报告模板"存在。
业务讨论(对话)→ 输出报告模板(= 业务定义)
↓
AI 从多源提取数据 → 填充报告模板
↓
人工复核 → 完成
↓
模板变了?→ 改模板,不改系统
| 维度 | 传统 ERP | 新范式 |
|---|---|---|
| 业务逻辑载体 | 代码(硬编码) | 报告模板(文档化) |
| 业务逻辑更新 | 开发-测试-上线流程 | 与 AI 对话修改模板 |
| 数据填写方式 | 表单填写(受限) | 模板填充(灵活) |
| 变化成本 | 高(改代码) | 低(改模板) |
| 信息覆盖度 | 表单有的才能填 | 模板没写的可自由补充 |
┌─────────────────────────────────────────────┐
│ 用户交互层 │
│ 入口:玄关 IM · 钉钉 · Discord · Web │
│ 自然语言对话 ───────────────────▶ 分析报告/通知推送 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ AI 协作层(Agent Platform) │
│ Orchestrator Agent · Gen-Verifier Agent │
│ Team Workers · Event Bus · Shared State │
│ Approval Flow │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 数据层 │
│ 报告模板体系 · ERP 数据语义层 │
│ 工作协同系统 · 业务系统 Skill │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ ★★★ 数据连接层(需与 ERP 团队共建)★★★ │
│ ERP 数据库(只读)──▶ PostgREST ──▶ REST API│
└─────────────────────────────────────────────┘
| Agent | 职责 | 协作模式 |
|---|---|---|
| 对话 Agent | 接收用户自然语言提问,解析意图 | — |
| Query Planner | 解析问题,拆解数据获取任务计划 | Orchestrator |
| ERP Data Agent | 从 ERP 数据连接层提取结构化数据 | Worker |
| 文档 Agent | 从知识库检索策略文档、分析框架 | Worker |
| 报告组装 Agent | 汇总多源数据,填充报告模板 | Aggregator |
| 质量审核 Agent | 审核报告准确性和业务合理性 | Verifier |
| 审批 Agent | 关键报告的人工审批流程 | Approval Flow |
报告模板不是"填写表单",而是一份完整业务定义的文档:
# 医院品种调研报告
## 一、基本信息
- 医院名称:[ERP自动填充]
- 药品名称:[ERP自动填充]
- 调研日期:{date}
## 二、该医院相关数据(ERP自动填充)
- 该品种近6个月销售数据:{flow_data}
- 相关科室医生名单:{doctor_list}
## 三、实地调研(业务人员填写)
### 3.1 科室情况
{自由文本,业务人员填写}
## 四、综合分析(AI自动生成)
{AI根据以上信息生成分析结论}
模板特点:
| 类型 | 说明 | 示例 |
|---|---|---|
| 调研报告 | 评估类业务(品种入院、渠道拓展) | 医院品种调研、市场调研 |
| 分析报告 | 数据分析类业务 | BP 月度分析、Sales 分析 |
| 执行计划 | 规划类业务 | BP 目标设定、工作计划 |
| 审核报告 | 审批类业务 | 费用报销、合同审批 |
ERP 数据库的表名、字段名(如 t_drug_sale_2024、FLOW_QTY)对于 AI 模型来说是无法理解的噪音。
| # | 字段 | 说明 | 约束 |
|---|---|---|---|
| ① | 原始编号 | 原文档编号 | 必填 |
| ② | 层级编号 | F-1-001 格式 | 必填 |
| ③ | 指标名称 | 标准中文名称 | 必填,唯一 |
| ④ | 指标分类 | F/S/O/I/H/SK/DM/WS/OW | 必填 |
| ⑤ | 指标层级 | 原生/派生/组合场景 | 必填 |
| ⑥ | 定义/口径 | 业务定义和计算口径 | 必填 |
| ⑦ | 计算公式 | 标准算法 | 派生/组合场景必填 |
| ⑧ | 数据来源系统 | 云平台/帆软/ERP/大数据/临采 | 必填 |
| ⑨ | 数据表/字段路径 | 具体到表名.字段名 | 必填 |
| ⑩ | 最小时间颗粒度 | 天/周/月/季/年 | 必填 |
| ⑪ | 更新频率 | 实时/日/周/月/季/年 | 必填 |
| ⑫ | 责任部门 | 数据管理/信息技术/业务部门 | 必填 |
| 层级 | 定义 | 示例 |
|---|---|---|
| 原生指标 F-1 | 最基础的原子指标,直接从源系统获取 | 流向数量 |
| 派生指标 F-2 | 原生指标 + 业务口径或维度限定 | 深西康含税收入(+组织维度) |
| 组合场景指标 F-3 | 多维组合 + 时间粒度 + 计算方式物化 | 深西康Q2含税收入达成率 |
| 代码 | 名称 | 覆盖范围 |
|---|---|---|
| F | 财务与盈利 | 集团层财务指标 |
| S | 业务结构与市场 | 集团层业务结构指标 |
| O | 运营与数字化 | 集团层运营与数字化指标 |
| I | 创新与研发 | 集团层研发与创新指标 |
| H | 组织与人才 | 集团层组织与人力指标 |
| SK | 深西康指标 | 深西康中心层财务/品种/市场/运营指标 |
| DM | 德镁指标 | 德镁中心层财务/资本市场/产品指标 |
| WS | 维盛指标 | 维盛中心层财务/产品/渠道指标 |
| OW | 院外指标 | 院外中心层新媒体/医生/B2C指标 |
| 路径 | ERP 团队工作量 | AI 团队工作量 | 推荐度 |
|---|---|---|---|
| A. ERP 团队开发只读 API | 大(需排期开发) | 小 | ⭐⭐ |
| B. 数据库只读视图 | 中 | 中 | ⭐⭐⭐ |
| C. PostgREST 中间层(推荐) | 小(只需开放只读权限) | 中 | ⭐⭐⭐⭐⭐ |
PostgREST 优势:
格式:系统.库.表.字段 示例: FSS.NC_GL.GL_VOUCHER.ExpenseAmount FR.销售跟踪表.FlowQty
用户:「帮我们评估一下 XXX 药品进入北京协和医院的可行性」 1. 对话 Agent → 解析意图 → 创建 Goal(mode: orchestrator) 2. Query Planner → 拆解任务: ├── Task A: ERP Data Agent → 查该药品近6个月流向数据 ├── Task B: ERP Data Agent → 查该医院相关科室医生名单 ├── Task C: ERP Data Agent → 查该品种历史销售数据 ├── Task D: 工作协同 Agent → 检查是否有该医院的既往调研记录 └── Task E: 知识库 Agent → 检索相关市场策略文档 3. Team 模式 → 并行执行 Task A/B/C/D/E 4. Shared State → 汇总中间结果 5. 报告组装 Agent → 生成「医院品种调研报告」初稿 6. Gen-Verifier → 质量审核 Agent 审核报告 7. Approval Flow → 推送给业务负责人复核 8. Event Bus → 发布「调研完成」事件 → 更新看板、通知相关人员
场景:某新药上市 → 对全国 10,000 家医院同步发起调研 1. 用户定义调研模板(与 AI 对话生成) 2. 用户导入医院列表 + 品种列表 3. Orchestrator → 创建 Goal(mode: team,maxConcurrency: 100) 4. Team → 100 个 Worker 并行执行 5. Aggregator → 汇总 10,000 份报告 6. 生成「全国市场调研总报告」 7. 推送结果 → 钉钉/看板
| Skill | 系统 | API 文档数 | 状态 |
|---|---|---|---|
| xgkb-bp-data | BP 系统 | 6 | ✅ 已有 |
| xgkb-sfe-data | SFE 系统 | 5 | ✅ 已有 |
| xgkb-tbs-data | TBS 系统 | 5 | ✅ 已有 |
| xgkb-cwork-data | 工作协同 | 7 | ✅ 已有 |
| xgkb-kb-search | 知识库 | 7 | ✅ 已有 |
| xgkb-ai-billing-data | AI 费用 | 5 | ✅ 已有 |
| xgkb-erp-data | ERP 系统 | 待建 | 🆕 需共建 |
| 交付物 | 状态 |
|---|---|
| Agent Platform 核心引擎(152 个 E2E 测试通过) | ✅ |
| 5 种协作模式(Orchestrator/Team/Gen-Verifier/EventBus/SharedState) | ✅ |
| Web Dashboard | ✅ |
| Skill 编写规范(dev-guide) | ✅ |
| 13 个业务系统 API 文档 | ✅ |
| BP 数字指标体系文档(Metadata 标准 + 指标定义) | ✅ |
目标:与 ERP 团队共建 ERP 只读数据访问层
预估工期:2-4 周(取决于 ERP 团队配合节奏)
验证标准:
| 阶段 | 内容 | 依赖 | 可交付 |
|---|---|---|---|
| Phase 0 | 基础能力 | — | ✅ |
| Phase 1 | ERP 数据连接层(共创) | ERP 团队配合 | 共创成果 |
| Phase 2 | 单场景 MVP | Phase 1 | BP 月度分析报告 |
| Phase 3 | 调研场景扩展 | Phase 2 | 万级医院并行调研 |
| Phase 4 | 多系统联动 | Phase 3 | 跨系统分析 |
| Phase 5 | 智能化自动化 | Phase 4 | 策略引擎 + 预警 |
| 问题 | 选项 |
|---|---|
| 你们倾向哪种数据暴露方式? | A. 专用只读 API / B. 数据库只读视图 / C. 中间层服务 |
| 哪些数据库可以开放只读权限? | 全量 / 仅指定表 / 仅指定视图 |
| 是否有数据库管理员可以协助配置? | — |
| 问题 | 说明 |
|---|---|
| 核心业务表有哪些? | 销售、库存、财务、人事… |
| 哪些表的含义比较清楚,可以先做映射? | — |
| 是否有历史数据字典或 ER 图? | 如果有,可以大幅减少语义梳理工作量 |
| 哪些数据涉及敏感信息,必须严格权限控制? | — |
| 优先级 | 指标 | 原因 |
|---|---|---|
| 1 | F-1-001 流向数量 | 基础量纲,数据相对独立 |
| 2 | F-3-001 集团含税收入 | 核心 KPI,需求高频 |
| 3 | F-3-014 DSO | 资金效率,管理层关注 |
| 新范式术语 | 传统 ERP 术语 | 说明 |
|---|---|---|
| 报告模板 | 表单/模块 | 业务逻辑载体 |
| Skill | 业务功能代码 | 业务能力单元 |
| ERP Data Agent | ERP 开发团队 | 数据提供者 |
| 工作协同 Agent | 邮件/IM | 非结构化输入 |
| 知识库 | 文档库 | 策略框架存储 |
| 数字字典 | 数据字典/ER图 | 数据语义映射 |
| Gen-Verifier | 审批流程 | 质量控制 |