Skip to content

AI / Agent 场景:为什么 Agent 不该直连原始表

这是整套教程最想强调的章节之一。

先看最关键的一张图

Agent 通过 semantic layer 访问数据的架构图
图片来源:Cube 官方 Blog。它最直观地说明了:真正稳定的 AI 数据体验,应让 LLM 工作在语义层之上,而不是直连原始数据库。

1. Agent 真的会“写 SQL”,但这还不够

今天的大模型和 Agent 框架,已经能在很多情况下生成可执行 SQL。

但企业级分析场景里,问题从来不只是 SQL 语法:

  • 指标口径是否正确;
  • join 路径是否正确;
  • 维度暴露是否合理;
  • 权限是否满足合规要求;
  • 查询是否会把数仓打爆;
  • 结果是否能与 BI 保持一致。

因此,真正需要被 AI 消费的,不应该是一堆裸表,而应该是:

一个稳定、受治理、可执行的业务语义接口。

2. Cube 在 Agent 架构中的位置

一个很典型的架构可以画成:

text
自然语言问题

LLM / Agent 解析意图

匹配 Cube 中的指标、维度、过滤与时间粒度

调用 Cube API

Cube 编译查询 / 命中预聚合

返回可信结果

Agent 负责解释、追问与可视化

这里的责任边界非常清楚:

  • LLM / Agent:理解问题、组织查询、解释结果;
  • Cube:提供统一语义、权限、性能与数据返回。

再看一张更完整的 AI 数据体验图

AI 数据应用、向量库与 Cube semantic layer 的关系图
这张图补充了实践层面:Agent 不只是连 Cube,还可能先通过语义元数据、向量库与检索层做上下文增强。

3. 为什么这比直连原始数据稳定得多

问题 1:join 猜错

原始表场景下,Agent 很容易不知道到底该怎么连。

问题 2:口径不一致

原始字段并不等于业务指标。

问题 3:权限不可控

即使 SQL 正确,也可能越权访问不应暴露的数据。

问题 4:性能不可预测

探索式多轮查询会对上游数仓造成持续压力。

Cube 恰好在这四点上都提供了结构化缓冲层。

4. Agent 最适合通过什么方式接 Cube

方式 A:REST API

优点:

  • 易于程序化构造请求;
  • JSON 结构清晰;
  • 适合作为 tool call 的输出格式。

方式 B:SQL API

优点:

  • 对熟悉 SQL 的 Agent / 中间层很自然;
  • 可以像数据库一样被消费;
  • 很适合 Notebook、BI、部分代理式 SQL 工具。

方式 C:MCP

适合:

  • 直接与支持 MCP 的 AI 客户端集成;
  • 需要更“AI 工具化”的交互体验。

但无论入口是什么,真正的数据治理价值仍然来自底层语义层,而不是协议本身。

5. 中文教程里应该怎么讲“AI 友好”

不要把 Cube 的 AI 价值讲成:

  • “它可以自动帮你问数”;
  • “它自带一个聊天机器人”;
  • “它会替你理解所有业务语义”。

更准确的表述是:

Cube 让 AI 有机会在一套被治理过的业务语义上工作,而不是在混乱原始表上盲目试错。

6. 从团队协作角度看,Cube 还有一个额外价值

如果没有统一语义层,常见情况会变成:

  • BI 团队在 Looker / Tableau 里维护一套逻辑;
  • 数据应用团队在后端重复实现一套逻辑;
  • AI 团队在 Prompt 或工具层又硬编码一套逻辑。

Cube 的价值就在于把这些逻辑尽量收敛到同一个建模层。

7. 这对中国企业尤其重要

很多中国企业做智能问数时,真正卡住的不是模型能力,而是:

  • 数据口径分散;
  • 权限要求严格;
  • 数仓成本敏感;
  • BI、报表、运营系统、Agent 各自一套定义。

Cube 作为 headless semantic layer,恰好适合成为这些系统之间的统一接口层。

一句话总结

Agent 不应直接连接原始分析表,而应连接一个统一语义层;Cube 的核心价值不是“帮 AI 写 SQL”,而是“给 AI 提供可信、可治理、可加速的数据语义接口”。

本站基于官方文档与官方代码仓库整理,为第三方非官方中文教程,与 Cube Dev, Inc. 无隶属、授权或背书关系;Cube、Cube Core 及相关标识归其各自权利人所有。