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

ERP、MES、OA 的数据只读地同步进来,组织成 Object 和 Link。谁来读,读到的都是同一份;谁来改,都只走 Action。
当前值 = 数据源 ⊕ 语义层里的改动
Object Type 是业务里的名词,Link Type 是它们之间的关系,Action Type 是能对它们做的事。智能体读 Ontology,就知道公司里有什么、能做什么。
| API name | Base type | 说明 |
|---|---|---|
organizationId | string | 主键Value Type cellId |
name | string | 标题 |
seats | integer | 席位 · 单位:个 |
members | integer | 成员 · 单位:人 |
stage | string | Value Type organizationStage · 只在语义层 |
health | string | Value Type healthStatus · 只在语义层 |
agentCount | integer | 派生agents → count |
modelCostUsd | double | 派生modelUsages → sum(costUsd) |
lastTouchpointAt | timestamp | 派生touchpoints → max(at) |
agentsapplicationsserversmodelUsagestouchpoints一类业务对象:客户、订单、设备。每个对象有主键和标题。
对象的字段,22 种 base type;主键、标题、单位在定义时校验。
两类对象之间的关系,一对多或多对多,沿着链接一跳一跳地查。
几类对象共有的形状,例如「可计费」:按接口一起查、一起聚合。
带约束的取值:枚举、范围、正则,写入时校验。
改数据的唯一入口:参数、提交条件、规则。先校验再执行,每一次都进 Action Log。
读的时候沿链接算出来:数字员工数、累计费用、最近一次跟进。

开箱就能用,不用先做界面。
每个 Object Type 是一张视图,列就是属性。在 SQL Console 里写 SQL,或者用 psql、BI 工具、Notebook 只读直连。
-- 每个组织有多少数字员工 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;
postgresql://ont_<org>_reader.<ref>:••••@…:6543/postgres
智能体不直接改线上的本体:它开分支、写定义、开提案;人逐项批准,合并后发一个语义版本。

智能体从当前语义版本开一个分支,把 Object Type、Link Type、Action Type 的改动写在分支上;main 不受影响。
按资源拆成逐项任务,附上为什么改、改了什么、校验结果、影响面(30 天的读写与活跃用户)和破坏性改动。
每一项都要一个人批准;破坏性改动要输入资源名确认。批准只认人的网页登录,任何 Key 都不行。
引用闭合、名字唯一、主键规则、与 main 无冲突全部通过后合并,发一个语义版本,Changelog 记下每一步。
作者由凭证决定:Agent Key 一律记为智能体。智能体直接改 main 会被拒绝(409 branch_required)。
REST API、SDK、CLI 与 MCP 走同一套权限:一把 Key 能做的,就是它代表的人能做的。
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
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");
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,权限不超过它代表的人。
AIDC 的组织、数字员工、应用、服务器、模型用量和客户跟进都在自己的 Ontology 里,定义由 AIDC 的智能体维护、开发者审核。产品、方案、SDK、模型和课程对所有 AIDC 账号公开。
organization
数字员工agent
应用application
服务器server
模型用量modelUsage
客户跟进touchpoint
product
方案plan
SDKsdk
模型model
课程course
同步进来的数据存在 Semantic 里,按组织隔离;每个组织的数据库是一组只读视图,直接读 Ontology 的当前值,不另存副本。ERP、MES、OA 只读同步,人和智能体的改动只走 Action、留在语义层,永远不回写数据源。
缺省只有本组织能看。设成 Public 才对所有登录的 AIDC 账号可见(不含匿名);Open to Internet 是任何人、不用登录,默认关闭,目前只有文件支持。改分享只有 Owner 能做。别的组织看不到你的 schema,SQL 也查不到。
只读:一次一条 SELECT(可以 WITH 开头),最多 10,000 行、20 秒。查询以只读角色执行,看不到平台表,也提不了权;直连每个组织最多 10 个连接,空闲 30 秒断开。
智能体不能直接改 main:它在分支上改、开提案,每一项都要一个人在网页上批准,破坏性改动还要输入资源名确认;合并前自动检查引用、命名、主键和冲突。批准只认人的网页登录,任何 Key 都不行。
不用。登录后在浏览器里看图、查表、执行 Action、写 SQL、设置分享。开发者和智能体再用 REST API、SDK、CLI。
第二套「价值链系统」和第三套「组织决策系统」都包含 Semantic,详见定价。
