企业数据上下文层 · Apache Ossie

快速构建 AI 原生语义层

几乎每家企业都被要求落地数据 Agent,能真正交付的却寥寥无几。Datus 直接在你已有的数仓上,建起一层受治理的数据上下文层。它是一套 Apache Ossie 语义层与本体,而不是通用记忆。这份上下文,你的数据 Agent 才真正信得过:几天就能上线,还会随每一次查询不断演进。

agent.run
$ datus init --datasource snowflake
↳ 读取表结构 · SQL 历史 · 血缘 → 生成 OSI 语义模型
✓ Apache Ossie 上下文层就绪:本体、指标、受治理的 SQL
梳理我们的营收本体
编译 → 校验 → 治理 → 服务 · 由 Dosi 引擎编译,覆盖 16 种方言
↻ 持续演进:从每一次查询中打磨本体与指标
· 一份口径,多个入口
自带数仓 自带模型
1.2k+
GitHub Star
Apache Ossie
开放的语义 + 本体标准
16 种方言
一份 OSI 规范,原生 SQL
几天,而非几个季度
接上就有可用的上下文层
落地难题

每家企业都被要求落地数据 Agent,真正能交付的却很少。

真正的卡点不是模型,而是几十年沉淀下来的杂乱、割裂的数据。没有哪个 Agent 能独自在里面安全穿行,于是 pilot 迟迟推不动,账单却照样寄来。Datus 为 Agent 铺出一条受治理的通路。

没有上下文层
有了 Datus
Agent 全靠猜来拼 join、凑口径,然后一本正经地答错。
Agent 只能通过受治理的 Apache Ossie 语义层与本体查询,没有胡编的余地。
把数据彻底重构一遍要好几个季度,pilot 撑不到真实数据就先夭折了。
起步快、零重构。接上你已有的数仓,几天就能拥有可用的数据上下文层。
同一个指标,每个团队各有各的算法,数字永远对不齐。
让数据的生产者、消费者和 Agent共用同一份受治理的口径。一处定义,处处一致。
产品结构

开放内核,商业 Studio

一套基于开放标准的技术栈:上层是商业化的 Studio,中层是开源 Agent, 底层是 Apache Ossie 标准和 Dosi 引擎。

Datus Studio

L3

商业 · 人、BI 与 Agent 的交互入口

Co-pilotBIAI AgentREST · MCP

Datus agent

L2

开源 · 生成模型、执行任务

OSI 模型text-to-SQLCLI · SDKApache 2.0

Apache Ossie + Dosi 引擎

L1

标准 · 定义并编译语义

本体OSI → SQL16 种方言开放标准
agent
datus
01连接
02读取表结构与 SQL
03生成 OSI 模型
04映射本体
05定义指标
06治理访问
07Agent 查询
08持续演进
如何构建

从原始数仓,到 Agent 可信任的上下文层

Datus 读取你手上已有的一切,编译成一层受治理的 Apache Ossie 上下文层,再从真实使用中不断打磨。

切入点

数据上下文层从哪里开始回本

先从一个治理好的业务域入手,一个下午就能验证,再一个域一个域地铺开。

把停滞的 agent pilot 推上生产

Demo 在样本数据上好好的,一碰真实数据就崩。Datus 在真实数仓之上给这个 pilot 铺一层受治理的上下文层,它才终于能上线。

在四分五裂的 BI 版图里统一口径

同一个指标,三种定义,散在两个平台。Datus 编译出一套Apache Ossie 语义层,BI、人和 Agent 读的都是同一份。

让 Agent 在本体上推理,而不是在裸表上猜

本体告诉 Agent 每个概念是什么、彼此如何关联,于是它能在业务里找路,而不是靠猜去拼 join。

让 Agent 通过 MCP 调用你的语义层

用原生 MCP 把受治理的上下文开放出去,Claude、Cursor 或你自己的 Agent 都按口径查询,而不是直接写裸 SQL。
接口

同一个引擎,同一份答案,覆盖团队工作的每一处

CLI、基于 Apache Arrow 的 REST、原生 MCP,还有 Python SDK。一层数据上下文层接通所有入口,人、BI 和 Agent 拿到的都是同一份受治理的答案。

01 / 04

Studio

商业版的上下文感知 co-pilot。团队用自然语言驱动整套技术栈, 映射实体、定义指标、回答问题,全都落在你受治理的上下文层之上。

▸ open studio.datus.ai

studio.datus.ai
chat
you
top 10 regions by MRR this quarter
datus
here you go 👇
sql
SELECT region,
  SUM(mrr) AS revenue
FROM subscriptions
GROUP BY 1
ORDER BY revenue DESC;
results · 4 rows · 128ms
NA$482K
EU$317K
APAC$184K
LATAM$96K

02 / 04

Datus agent

开源的 Datus agent 读取你的表结构和 SQL 历史, 不用手写 YAML 就能生成 OSI 语义模型,再一手包办数据集、text-to-SQL 和调度,全部基于 Apache 2.0。

▸ pip install datus-agent

~ / datus
$ pip install datus-agent
✓ installed datus-agent 0.3.5
$ datus
connected snowflake · dbt · datahub
1,284 tables loaded into context
datus> monthly active users, last 6 months
▸ SELECT date_trunc('month', event_at) AS m,
         COUNT(DISTINCT user_id) AS mau
  FROM events GROUP BY 1 ORDER BY 1;
✓ 6 rows · 42ms
2025-08   28,412
2025-09   31,207   ↑ 10%
2025-12   34,588   ↑ 11%
2026-01   38,904   ↑ 24%

03 / 04

Chatbot

把上下文层嵌进 Slack、飞书或 Microsoft Teams,每个群都变成自助取数入口,答案对齐统一治理的口径,而不是临时拼的 SQL。

▸ /datus in Slack

#growth · slack
A
aria9:41
@datus what changed in signups this week?
D
datusAPP9:41
signups this week: 2,914 (+18% wow)
daily signups
MonTueWedThuFriSatSun
↑ mostly driven by google / cpc
open in studio ↗

04 / 04

MCP Server

通过 Model Context Protocol 把整套受治理的上下文开放出去。 接进 Claude、Cursor 或 Windsurf,任何 Agent 都能基于你的本体和指标推理,同一个引擎,同一份答案。

▸ datus mcp serve

claude · mcp
mcp servers
datusconnected
tools 6 · resources 1,284
> summarize the orders table
datus.get_schema (orders)
id           uuid          pk
user_id      uuid          fk → users
amount       numeric(10,2)
status       text
created_at   timestamptz
1.2M rows · fresh 4m ago
the orders table tracks purchases per user, ~1.2M rows, updated every few minutes from the ingestion pipeline.
集成

适配你已经在跑的 modern data stack

让 Datus 对接你的数仓、数据目录、语义层和 BI。Dosi 引擎把 OSI 编译成 16 种数仓方言的原生 SQL,什么都不用迁移。

模型自带
OpenAIAnthropicGeminiDeepSeekQwenOllamaBedrock
数仓
SnowflakeBigQueryRedshiftPostgresDuckDB
建模
dbtSQLMesh
语义层
Cubedbt Semantic LayerLookML
数据目录
DataHubOpenMetadataUnity Catalog
BI
MetabaseSupersetTableau
编排调度
AirflowDagsterPrefect
常见问题

常见问题

数据上下文层、Apache Ossie、Dosi 引擎、开放内核,以及 Datus 与同类方案的对比。

什么是数据上下文层?

数据上下文层直接建在你的数仓之上,是一套受治理的语义层与本体。它告诉 AI 你的实体、指标和关系分别代表什么,并给出干净、受治理的度量路径。和通用记忆存储不同,它扎根于数据本身,这正是企业数据 Agent 想答对、而不是靠猜 join 和口径时,真正需要的上下文。

为什么没有它,企业的 Agent 落地任务就会停滞?

卡点很少出在模型,而在于几十年攒下的杂乱、割裂的数据。没有 LLM 能独自在里面安全穿行,于是 Demo 在样本数据上跑得好好的,一到真实数据就崩。Datus 接上你已有的数仓,几天就编译出一层受治理的上下文层,Agent 拿到一条贯穿业务的清晰通路,pilot 才走得到生产。

什么是 Apache Ossie(OSI),Datus 为什么建在它之上?

OSI(Open Semantic Interchange)现在叫 Apache Ossie,是定义本体与语义模型的开放标准,已有 Snowflake、Databricks、Salesforce、dbt Labs 等 50 多家组织参与。Datus 用 OSI 规范定义你的模型,而不是专有格式,因此你的上下文层可以自由迁移、不被厂商绑定。规范对所有人开放;真正的产品,是我们的引擎,以及我们在这套标准里的位置。

什么是 Dosi 引擎?

Dosi 是一个 Rust 引擎,把 OSI YAML 编译成 16 种数仓方言的原生 SQL,还带零拷贝 Arrow 流式传输。它正在走向开源,目前已经可以免费下载使用。CLI、REST、MCP 和 SDK 背后,都是同一个引擎、同一份答案。

开放内核和 Datus Studio 是什么关系?

开源的 Datus agent、Dosi 引擎和 Apache Ossie 模型构成内核,可以免费跑在你自己的数仓上。Datus Studio 是架在上面的商业层:一个上下文感知的 co-pilot,人、BI 和 Agent 都用自然语言驱动整套技术栈,还为企业提供 SSO、RBAC 以及私有 / VPC 部署。

Datus 和 Snowflake Cortex、Databricks Genie 或 Cube 相比如何?

Snowflake Semantic Views 喂给 Cortex Analyst,Databricks Metric Views 喂给 Genie,可两边互不读取,上下文困在单一厂商内部就到此为止。Datus 站在中立地带:在你已有的数仓之上建起一套 Apache Ossie 语义层与本体,编译成 16 种方言的原生 SQL,让 Agent 通过 MCP 直接调用。

给你的数据 Agent 一层可以信任的上下文层。

在浏览器里免费打开 Datus Studio, 或者把开源 Agent 和 Dosi 引擎私有部署到你已有的数仓上。