← 返回博客技术实践

语义层成 Agent 新底座:从 Oracle、Google 和学术界这一周的共识,看 OntiCards 的卡位

Oracle 让 Agent 选 fixed trusted reports 而不是写 SQL,Google 把 Measures + Graph 并入 BigQuery,SIGMOD 2026 Semantic-Layer-mediated NL2SQL 把 Spider 2.0 准确率从 17% 推到 94.15%——三家在同一周押注同一件事,语义层正式成了 Data Agent 的新底座。

OntiCards 团队·2026-08-30·7 分钟阅读
语义层成 Agent 新底座:从 Oracle、Google 和学术界这一周的共识,看 OntiCards 的卡位

三家在同一周做了同一件事

过去一周,语义层(Semantic Layer)突然成为数据圈最热的关键词。

Oracle 在官方博客发文呼吁:让 Agent 选 fixed trusted reports,不要让它直写 SQL。具体做法是把分析师已经审过的查询封装成"报表工具",Agent 只需要从这些工具里挑一个并填入参数。即便有人绕过 prompt 注入获得了 40+ 个 MCP 漏洞,Agent 能访问到的数据范围仍然是固定的。

Google Cloud 在 8 月 13 日发布《Using BigQuery Graphs with measures for trusted agentic workloads》,把 Graph 和 Measures 同时放进同一套受治理的数据模型里。在西雅图冬季夹克销量下降 12% 的零售案例中,SQL/Mesure 只能告诉你"降了多少";而 Graph 能告诉你"为什么降"——是哪个配送中心、哪条供应商链、哪场风暴拖累了交付。Agent 必须同时拥有"calculator"和"map"才能负责地给出建议。

学界也没闲着。SIGMOD 2026 收录的 A Semantic‑Layer‑Mediated Agent for Natural Language to SQL 论文,把 Gemini 3 Pro 接到一个 curated semantic layer 上、用 Semantic Model Query(SMQ)做中间表示,在 Spider 2.0‑snow 547 题上达到 94.15% 执行准确率,位列官方榜第三。同期一篇分析指出,o1‑preview 在同一基准上只有 17.0%。17.0% 对 94.15%,几乎是一倍和五倍的差距。

三路玩家押注语义层:Oracle、Google、学术界同步释放信号
三路玩家押注语义层:Oracle、Google、学术界同步释放信号

Oracle、Google、学界——三路玩家在同一周押注同一件事。这不是巧合,而是工程共识正在形成:"原始 Schema → 大模型直出 SQL" 这条路线,在企业里已经走不通。

为什么"模型直出 SQL"路线突然不香了?

把过去三年的工程经验拼起来看,模型直出路线有三层天花板,而每一层都恰好是语义层解决的问题。

第一层业务词汇不映射字段。用户问"高价值客户的流失风险",数据库里没有一列叫这个名字。要把它算出来,需要业务侧提供"高价值"的定义(最近 12 个月消费金额 + 利润贡献 + 合同状态),模型并不知道你公司用的是哪个版本。

第二层指标口径冲突。Revenue 在财务是含税应收,在销售部门是订单金额,在客服中心是 GMV 减去退款。让模型在 prompt 里提示"请使用财务口径"治标不治本——切换业务时模型会忘记。

第三层JOIN 路径靠猜。客户表、订单表、合同表之间的关联往往是隐式的,需要业务侧提供关系地图。让模型自己猜 join,最常见的产物是重复计数或漏掉关键记录。

Spider 2.0 把这三点全部推到了极端:1000+ 字段、跨方言、跨 5+ 张表的真实企业 schema。o1‑preview 在这个基准上只完成 17.0% 的任务,恰好说明"模型聪明"和"模型能干活"是两件事。

NL2SQL 准确率天花板:Spider 1.0 / Spider 2.0 / Semantic-Layer-mediated 方案对比
NL2SQL 准确率天花板:Spider 1.0 / Spider 2.0 / Semantic-Layer-mediated 方案对比

把语义层加进架构之后,模型的角色从"独立写完 SQL"切换成"表达意图"——模型只需要回答"用户在问什么业务对象、用哪个指标、在什么时间窗口和筛选条件下",剩下的编译(指标展开、表选择、JOIN 路径、权限注入)由语义层和下游编译引擎负责。Spider 2.0 从 17% 跳到 94.15%,原因不是 Gemini 比 o1 强 5 倍,而是把模型不该干的事从模型手上拿走了。

三层语义层 + 业务编译器的实践路线

为了让 Agent 真正变得可信,主流玩家开始把语义层扩展到三层:指标层(Measures)+ 实体层(Entities)+ 关系层(Relationships)。每一层独立维护、独立治理,下游的 Agent 编译引擎把它们编到可执行 SQL。

  • Google BigQuery Graph with Measures(Preview):在 Property Graph DDL 上直接定义 MEASURE(SUM/AVG/COUNT DISTINCT 等),与节点 KEY 绑定,避免 Graph 展开后重复计数。强调 zero ETL——企业不必先建独立图数据库。
  • Oracle Trusted Reports:把查询模板固化为"报表工具",Agent 在工具池里挑一个并填参数;查询逻辑不可以再被模型自由修改,从源头杜绝凭空构造 SQL。
  • 蚂蚁 Agentar-SQL:用 Agentar-Scale-SQL 框架在 BIRD-SQL 上霸榜;某头部城商行试运营查询准确率 > 92%,较传统方案提升 3 倍以上。
  • 阿里瓴羊"超级数据分析师":把"问数 / 解读 / 报告"三个 Agent 编排起来,电商业务人员取数从 2 小时缩短到 10 秒——背后是统一的指标语义层。
  • Snowflake Cortex Analyst + Semantic Views:把 dbt Semantic Layer / MetricFlow 的指标定义直接编译进 BI Agent 的 prompt。
路线语义层形态模型角色重点解决
传统 NL2SQL直接生成 SQL模型能力
Oracle Trusted Reports固化报表工具选择工具 + 填参可重复性 / 安全
BigQuery Graph + Measures节点 + 边 + Measure 三层表达业务问题可治理性
Semantic‑Layer‑mediated NL2SQL业务对象 + 指标 + 关系翻译为 SMQ准确率 + 可审计
OntiCards 数据卡片实体 + 字段语义 + 关系 + 术语由问数 Agent 调度落地 + 闭环

传统 NL2SQL 与语义层中间架构职责差异
传统 NL2SQL 与语义层中间架构职责差异

可以看到,所有路线都在把"模型不该干的事"从模型手上移出去。区别只在于把这件事做成 BI 报表、做成 Graph、做成 dbt 指标还是做成业务对象——但骨架都是:模型表达意图,语义层负责编译与治理。

OntiCards 的语义层怎么"两手抓"

回到 OntiCards 自家:四层架构 中第二层「数据卡片层」,本质上就是一套面向 Agent 的语义层工程实现。我们没有把它做成 Graph、也没有做成 dbt,而是做成业务侧能直接理解、能直接治理的"数据卡片"。

一张数据卡片长这样:

  • 实体(业务对象):订单 / 商品 / 客户 / 配送中心(与你在意的事一一对应)
  • 字段(业务字段而非物理字段):"高价值客户"、"本月新客"、"已签未发货"这种业务概念
  • 关系:实体之间的业务关联(谁为谁下单、谁给谁供货)
  • 质量门禁:哪些字段必须非空、哪些值必须在指定范围、哪些关联必须成立

OntiCards 数据卡片四要素:实体 + 字段 + 关系 + 质量门禁
OntiCards 数据卡片四要素:实体 + 字段 + 关系 + 质量门禁

相比 BigQuery 的 Graph 模型,OntiCards 的卡片更靠近业务:业务人员可以直接定义"高价值客户",不需要写 Property Graph DDL。相比 dbt 的指标层,我们多了一层术语库——同一件事可能被叫做"销售额"、"营收"、"GMV",术语库负责把多个口语化的叫法统一指向同一个业务对象。

相比 Oracle 的 Trusted Reports,我们更轻:Agent 不需要每次都从固化报表池里挑选——它可以临时查询新指标,前提是这些指标已经在卡片里被治理过。当新指标进入卡片时,质量门禁会自动跑一遍;不合格,Agent 永远看不到它。

这就是为什么说 OntiCards "正中靶心"——这一波语义层趋势不是某一家厂商的发明,而是整个行业向同一个方向收敛;OntiCards 一开始就把数据和 Agent 解耦成四层(接入 / 卡片 / 问数 / 消费),只是行业现在才意识到这条路是必要的。

怎么评估一个语义层是否合格?

如果你打算给自家 Agent 接入语义层(无论是采购还是自建),可以用以下四步快速体检:

  1. 业务可读:业务人员能直接参与定义。一个不能让业务理解和编辑的语义层,最终会退化成"数据团队二次维护的 Schema"。
  1. 指标有口径:每个业务指标必须能解释"在哪个时间窗口、按哪个状态、扣掉哪些项"才算定义过。
  1. 关系可表达:跨表 JOIN 不能靠工程师用 prompt 提示 Agent 临时拼凑;必须由语义层提供显式关系图。
  1. 治理可闭环:指标错误、口径漂移、字段缺失应当能在语义层就被拦截,而不是在数据分析师复核时才被发现。

语义层合格评估 4 步清单:业务可读 / 指标有口径 / 关系可表达 / 治理可闭环
语义层合格评估 4 步清单:业务可读 / 指标有口径 / 关系可表达 / 治理可闭环

如果你的语义层在四步上都过关,但 Agent 准确率仍然上不去——那大概率问题在数据接入层(数据质检与对账),不在语义层。换句话说,语义层不是万能解药,但它解决了 Agent 规模化最难的一半问题

参考来源


有关语义层与本体(Ontology)的区别,可以参考 OntiCards 路线图;想直接体验"卡片驱动取数",欢迎联系我们(hello@onticards.com)申请开通测试账号。定价金融行业方案 也已就绪。

技术实践

对 OntiCards 感兴趣?