Semantic

面向 AI 的企业数据平台

企业的所有数据在一个地方:人、应用和智能体读同一份,改数据只走 Action;每个组织一个自己的数据库,直接用 SQL 查。

ERP、文件与工厂三个数据源沿橙色虚线汇入平台上发光的对象网络,一位同事和 Adis 抬头看着它
22
种属性类型:文本、数值、日期、地理位置、向量、时间序列……
1
个组织一个数据库:SQL 查询、只读直连
10,000
行 · 20 秒:一条 SQL 的上限
0
次回写 ERP:ERP、MES、OA 永远只读

一份数据,
人、应用、智能体一起读。

ERP、MES、OA 的数据只读地同步进来,组织成 Object 和 Link。谁来读,读到的都是同一份;谁来改,都只走 Action。

数据源 · 只读同步
ERP订单、物料、财务
MES工单、产线、质检
OA审批、合同、人事
AIDC数字员工、应用、用量
OntologyObject · Link · Action

当前值 = 数据源 ⊕ 语义层里的改动

读同一份
人Object Explorer、SQL Console
应用Nexus 应用、REST API
智能体SDK、CLI、应用的 MCP
只读同步ERP、MES、OA 永远只读,Semantic 不会回写它们。
改动留在语义层Action 写下的改动和源数据叠在一起,下一次同步不会冲掉。
每次改动都留痕谁、什么时候、从什么改成什么、通过哪个 Action。

名词和动词,
把业务写成 Ontology。

Object Type 是业务里的名词,Link Type 是它们之间的关系,Action Type 是能对它们做的事。智能体读 Ontology,就知道公司里有什么、能做什么。

Object Type · organization
属性链接Action数据源访问
API nameBase type说明
organizationIdstring主键Value Type cellId
namestring标题
seatsinteger席位 · 单位:个
membersinteger成员 · 单位:人
stagestringValue Type organizationStage · 只在语义层
healthstringValue Type healthStatus · 只在语义层
agentCountinteger派生agents → count
modelCostUsddouble派生modelUsages → sum(costUsd)
lastTouchpointAttimestamp派生touchpoints → max(at)
链接agentsapplicationsserversmodelUsagestouchpoints
名词

Object Type

一类业务对象:客户、订单、设备。每个对象有主键和标题。

Property

对象的字段,22 种 base type;主键、标题、单位在定义时校验。

Link Type

两类对象之间的关系,一对多或多对多,沿着链接一跳一跳地查。

Interface

几类对象共有的形状,例如「可计费」:按接口一起查、一起聚合。

Value Type

带约束的取值:枚举、范围、正则,写入时校验。

动词

Action Type

改数据的唯一入口:参数、提交条件、规则。先校验再执行,每一次都进 Action Log。

Derived Property

读的时候沿链接算出来:数字员工数、累计费用、最近一次跟进。

Adis 在一块画板上摆放彩色的球,用橙色短杆把它们连成图

看图、查表,
点开一个对象。

开箱就能用,不用先做界面。

  1. Ontology 图Object Type 是节点,Link Type 是边:一对多实线、多对多虚线。拖动、缩放,点节点看详情。
  2. Object Explorer列就是属性:排序、按属性筛选、分页;上方的聚合条按一个属性分组计数。
  3. Object View属性、关系、编辑历史,以及能对它执行的 Action。
  4. Action填参数,先「只校验」再「提交」;提交条件不满足时,直接告诉你为什么。

每个组织,
一个自己的数据库。

每个 Object Type 是一张视图,列就是属性。在 SQL Console 里写 SQL,或者用 psql、BI 工具、Notebook 只读直连。

SQL Console · Ontology SQL
-- 每个组织有多少数字员工
SELECT o.name, o.stage, count(a.*) AS agents
FROM organization o
LEFT JOIN agent a ON a."organizationId" = o."organizationId"
GROUP BY 1, 2
ORDER BY agents DESC;
⌘ / Ctrl + Enter 执行只读 · 最多 10,000 行 · 20 秒
直连postgresql://ont_<org>_reader.<ref>:••••@…:6543/postgres
年轻人坐在方凳上用笔记本电脑查询,一行行数据从数据库圆柱里浮出来
  • 视图,不是副本:直接读当前值(数据源 ⊕ 语义层改动),不复制数据。
  • 多对多链接、Interface 各是一张视图;一对多直接 join。
  • 只收一条 SELECT(可以 WITH 开头),位置参数 $1、$2…;最多 10,000 行、20 秒。
  • 两个只读角色:reader 看本组织能看的全部类型,public 只看公开的类型;平台表和别的组织一律看不到。
  • 直连口令由开发者轮换,只显示一次;每个组织的 reader 最多 10 个连接。

本体由智能体构建,
由人审核合并。

智能体不直接改线上的本体:它开分支、写定义、开提案;人逐项批准,合并后发一个语义版本。

Adis 在橙色的分支小路上递出一张卡片,穿西装的同事拿着橙色印章审核
01 · BRANCH

开分支

智能体从当前语义版本开一个分支,把 Object Type、Link Type、Action Type 的改动写在分支上;main 不受影响。

02 · PROPOSAL

开提案

按资源拆成逐项任务,附上为什么改、改了什么、校验结果、影响面(30 天的读写与活跃用户)和破坏性改动。

03 · REVIEW

人审核

每一项都要一个人批准;破坏性改动要输入资源名确认。批准只认人的网页登录,任何 Key 都不行。

04 · MERGE

合并

引用闭合、名字唯一、主键规则、与 main 无冲突全部通过后合并,发一个语义版本,Changelog 记下每一步。

作者由凭证决定:Agent Key 一律记为智能体。智能体直接改 main 会被拒绝(409 branch_required)。

谁能看,
由你决定。

每个组织的数据只属于这个组织。Ontology、Object Type、智能体和文件的开放程度分四档,每一档都比上一档更开;三种角色决定能做什么。

一排三道拱门由小到大:关着的小门、半开的门和完全敞开的大拱门,人和 Adis 从中走过
PRIVATE

Private

只有 Owner,可以有多个。

GROUP

Group

指定的人、部门或整个本组织;邀请链接也属于 Group。

PUBLIC

Public

所有登录的 AIDC 账号(跨组织),只读;不含匿名访客。

OPEN TO INTERNET

Open to Internet

任何人,不用登录,只读。默认关闭,只有 Owner 能开;目前只有文件支持。

角色能做什么
Owner改分享与访问设置,添加其他 Owner,删除;也能改内容
Editor改内容:执行 Action 改数据,编辑文件;不能改分享
Viewer查看、使用:看定义与数据,用 SQL 查询,和智能体对话
  • 只有 Owner 能改分享:授予、撤销、设档位、生成邀请链接。
  • Public 与 Open to Internet 只能给 Viewer。
  • Open to Internet 只管读:不登录不能调 SDK、执行 Action、查 SQL。
  • Object Type 继承 Ontology 的访问:跟随 Ontology,或单独设为 Public。
  • 邀请链接要登录才能打开,打开后兑换成一条 Viewer 授予。

给程序和智能体,
同一套接口。

REST API、SDK、CLI 与 MCP 走同一套权限:一把 Key 能做的,就是它代表的人能做的。

REST API
POST /api/v1/sqlQueries/executeOntology
{
  "ontologyIdentifier": "cell-aidc",
  "query": "SELECT name, seats FROM organization WHERE seats > $1",
  "parameters": { "type": "unnamedParameterValues", "values": [30] },
  "rowLimit": 100
}

GET  /api/v1/ontologies/cell-aidc/objectTypes
POST /api/v1/ontologies/cell-aidc/objects/organization/search
POST /api/v1/ontologies/cell-aidc/actions/set-organization-stage/apply
SDK
const client = semantic.ontology();

// 筛选、排序、沿链接走
const orgs = client.objects("organization")
  .where({ seats: { $gt: 30 } });
const page = await orgs.fetchPage({ $orderBy: { seats: "desc" } });
const agents = await orgs.pivotTo("agents").fetchPage();

// Action:先只校验,再执行
await client.action("set-organization-stage").applyAction(
  { organization: "cell-aidc", stage: "已上线" },
  { $validateOnly: true });

// Ontology SQL
const rows = await semantic.sql(
  "SELECT name, stage FROM organization LIMIT 20");
CLI
aidc semantic sql "select name, stage from organization limit 20"
aidc semantic database --rotate     # 只读连接串,口令只显示一次

aidc resources list --scope public
aidc resources share <rid> --everyone --role viewer
智能体
# 读:给智能体读的说明书与对象
aidc semantic describe --markdown
aidc semantic objects organization --json

# 改本体:只在分支上,开提案等人批准
aidc semantic branch create add-department
aidc semantic branch modify add-department ontology/
aidc semantic branch propose add-department --title "…"

每个公司应用也是一个 MCP 服务器:工具就是它的 APIs,Adis、Claude Code、Codex 直接接上。智能体的 Agent Key 读 Ontology,权限不超过它代表的人。

读 Semantic 文档 →在 Academy 学 Semantic

AIDC 自己,
也跑在 Semantic 上。

AIDC 的组织、数字员工、应用、服务器、模型用量和客户跟进都在自己的 Ontology 里,定义由 AIDC 的智能体维护、开发者审核。产品、方案、SDK、模型和课程对所有 AIDC 账号公开。

只给 AIDC 开发者(Private)
组织organization 数字员工agent 应用application 服务器server 模型用量modelUsage 客户跟进touchpoint
Public · 所有 AIDC 账号
产品product 方案plan SDKsdk 模型model 课程course
11Object Types
8Link Types
5Action Types
7Value Types
6Derived Properties

这是 AIDC 自己的核心本体;生产里的 Ontology 还有更多类型,总数以组织的 Ontology 元数据为准。

在 Public 里看公开目录 →

每个构件,
今天做到哪一步。

Ontology 由三层构件组成:语言(数据、逻辑、动作、治理)、引擎(规模、接入、同步)、工具链(应用与服务、为人和智能体造工具)。下面逐项写 Semantic 的现状——已上线、部分可用,还是规划中。

状态说明:已上线 = 线上今天能用;部分可用 = 有一半,缺的写在后面;规划中 = 方向,不代表现在能用。

Language · 数据、逻辑、动作、治理

构件在 Semantic 里是什么状态
Object Type · Property · Link Type22 种属性类型;主键与 title key 在定义时校验。1:N 的链接用外键,N:M 的链接单独存一行。每个类型最多 256 个属性。已上线
Shared Property · Value Type · Struct共享属性可被多个类型引用;Value Type 带约束(枚举、范围、长度、正则、UUID……),写入时校验;Struct 最多 20 个字段,不能嵌套。已上线
Interface可以继承,对象类型实现它并映射属性;按接口一起查、一起聚合,SQL 里每个接口一张视图。接口上的链接约束与 Action 约束还没有。部分可用
Derived Property读的时候沿链接现算,只读,最多 3 跳;取某个值,或做 count、sum、avg、min、max 等聚合。不能用来筛选或排序。已上线
Action Type6 种规则(创建、修改、创建或修改、删除对象,创建、删除链接);参数;提交条件按参数、对象属性和当前用户判断;可以只校验不执行。单次最多改 10,000 个对象,批量一次最多 20 个请求、在一个事务里;成功的提交写进 Action Log。已上线
Action side effects邮件通知已上线:收件人可取自参数、对象属性或执行人,预演时会告诉你会发给谁。写回源系统只有 writeback webhook,目前只通到 AIDC 自带的 AWS 数据源;多个 side-effect webhook、站内通知中心还没有。部分可用
Functions函数运行时在内核里已经有了,但还没有开放发布入口,所以现在没有可用的函数;基于函数的 Action、由函数渲染的通知也就还没有。规划中
MarkingsMarking 把数据分成类别(合取 / 析取):要满足全部才看得见,不看角色,只限制、不授予。挂在 Ontology、Object Type、数据流和导入上,沿层级与数据依赖传播。已上线
Object & property security policies行级策略和列级策略叠成单元格级:看不见的行不出现,看不见的属性读到 null,也不能拿来筛选、排序或聚合。Ontology API、订阅、编辑历史、应用和自动化都按读的人判定;Ontology SQL 暂不含受保护的类型。已上线
Organizations · Users · Groups组可以嵌套、不能成环,成员可以带到期时间;每个用户的主组织恰好一个,部门、职位等属性由组织管理员维护;组接到资源分享、Marking 成员和对象安全策略上。已上线
Global Branching智能体不能直接改 main:在分支上改、开提案,逐项由人批准后才合并;合并前检查引用闭合、名字唯一、主键规则和冲突。只覆盖本体,不是跨应用的全局分支;审批规则是固定的,不能配置。部分可用

Engine · 规模、接入、同步

构件在 Semantic 里是什么状态
Object storage每个组织一个自己的 Postgres schema;对象的当前值 = 数据源 ⊕ 语义层里的改动;对象集编译成一条 SQL,在存储层直接执行。已上线
Ontology SQL每个 Object Type、N:M Link Type 和 Interface 一张只读视图;一条 SELECT,最多 10,000 行、20 秒。有两个只读角色(本组织的 reader、只看公开类型的 public),开发者可以轮换口令拿只读直连串(psql、BI 工具)。已上线
Data Connection两种连接:PostgreSQL 和 SQL Server。导入是一条只读查询(SELECT / WITH);云端按需叫醒客户箱上的 agent,只回传变了的行,口令不离开客户箱。没有 REST、S3、Kafka 等其他类型的数据源,也没有虚拟表和转换流水线。部分可用
Streams发布端把事件推进数据流(semantic.stream()、aidc semantic streams);对象的数据源可以是数据流、导入产出的数据集或媒体。已上线
SynchronizationERP 的数据是「有人读、且已经过期」才按需拉取(缺省 300 秒),没人读就不同步;变化账和对象集订阅让页面与程序跟着数据走。没有 CDC 式的持续镜像。部分可用
Object set subscriptions订阅对象集的变化,用 SSE 代替 WebSocket;断线后按序号续传,页面隐藏 1 分钟自动断开、切回来再续上。已上线
Media sets媒体集(图片、文档、音视频等)、Attachment 和媒体引用属性已上线,字节放在这家公司自己的 S3 桶里。变换目前只有 PDF / TXT 取文字,没有缩略图和切片;虚拟媒体集只能指向公司桶里的一个文件夹。部分可用
Time series时间序列属性有首点、末点、取点三个端点,内联最多 1,000 个点。没有独立的时序存储和分析。部分可用

Toolchain · 应用与服务、为人和智能体造工具

构件在 Semantic 里是什么状态
REST API/api/v1/ontologies/**:对象、对象集、搜索、聚合、链接、时间序列、附件、媒体、Action;另有 /api/v2/ontologies/** 与 /api/v2/functions/**(响应体不带 AIDC 信封),v2 的写入只开放 Action 的 apply 和 applyBatch。所有调用都要登录。已上线
Ontology SDK (OSDK)semantic.ontology()(浏览器与 Node):对象集、聚合、链接、Action、订阅的写法照 OSDK;客户箱上的智能体用 Python 的 aidc_semantic,写法一一对应;命令行是 aidc semantic。它们是手写的客户端,不是按你的本体生成的类型化包,也没有 npm 包。部分可用
Workshop在 AIDC 里叫 Applications:10 种组件(指标卡、对象表、XY 图、饼图、透视表、Markdown、筛选列表、数据新鲜度、对象集标题、自定义组件);变量按需、只算当前页。版本只增,发布只能由人;打开着的页面可以 Auto-refresh(最短 10 秒),数据一变就重新取;数据按看的人的权限现算。已上线
Object Explorer · Object Views表格(按属性排序、筛选、分页,上方一条聚合条)和对象详情(属性、关系、编辑历史、可执行的 Action、媒体预览);另有 Ontology 图、Object Type 页和 Action 页。已上线
Ontology Manager只读:图、Object Type 页、Action 页、提案审核。网页上不能新建或修改类型——定义靠 aidc semantic define、REST,或智能体的分支与提案。部分可用
Automate条件:对象新增 / 修改 / 移除、时间(北京时间)、对全部对象执行;效果:邮件、钉钉与企业微信通知(经客户箱上的数字员工)和 Loop 脚本;到期自动停。没有阈值触发,也不能直接提交 Action 或调用函数。部分可用
Ontology MCP每个公司应用现在各是一个 MCP 服务器(工具 = 应用的 APIs);把整个本体直接暴露成 MCP 工具的服务还没有接入。规划中

各项上限都写在文档里;没有基准测试支撑的规模与速度数字,这里不写。

同一条产品线,
共用一个底座。

每个产品管一段,用同一套本体、同一套权限、同一批模型。点开任何一个,看它在线上今天能做什么。

常见问题

数据存在哪里?会改回 ERP 吗?

同步进来的数据存在 Semantic 里,按组织隔离;每个组织的数据库是一组只读视图,直接读 Ontology 的当前值,不另存副本。ERP、MES、OA 只读同步,人和智能体的改动只走 Action、留在语义层,不会回写 ERP、MES、OA。

谁能看到我们的数据?

缺省只有本组织能看。设成 Public 才对所有登录的 AIDC 账号可见(不含匿名);Open to Internet 是任何人、不用登录,默认关闭,目前只有文件支持。改分享只有 Owner 能做。别的组织看不到你的 schema,SQL 也查不到。

SQL 有什么限制?

只读:一次一条 SELECT(可以 WITH 开头),最多 10,000 行、20 秒。查询以只读角色执行,看不到平台表,也提不了权;直连每个组织最多 10 个连接,空闲 30 秒断开。

让智能体改本体,安全吗?

智能体不能直接改 main:它在分支上改、开提案,每一项都要一个人在网页上批准,破坏性改动还要输入资源名确认;合并前自动检查引用、命名、主键和冲突。批准只认人的网页登录,任何 Key 都不行。

要写代码才能用吗?

不用。登录后在浏览器里看图、查表、执行 Action、写 SQL、设置分享。开发者和智能体再用 REST API、SDK、CLI。

哪些方案包含 Semantic?

第二套「价值链系统」和第三套「组织决策系统」都包含 Semantic,详见定价。

登录,
看看你公司的那一份。

用 AIDC 账号登录,落到自己组织的 Semantic;还不属于任何组织,就先看 Public。

两位同事和两位 Adis 围着一个发着橙光的对象网络欢呼