本体

本体即软件。

一份可执行的业务本体。AI 编写它,运行时运行它,Agent 操作它,你拥有它。这一页说清这个词在这里指什么。本体是你的业务里那份由运行时直接执行的定义:以类型化元数据写在你的仓库里,编译成一个工件,然后运行——数据库、API、界面和 Agent 工具都从它派生,定义本身在每一次调用时被强制执行。同时写给做选择的人和写定义的 Agent。

ObjectOS product surface connecting business data, applications, and AI agents
AI 编写元数据 对象、权限、流程、工具
人 审阅 diff 业务权限、数据访问、审批
运行时 执行策略 UI、API、审计、MCP、动作
6 类
核心由六类东西构成:对象与字段、关系、动作、权限、流程、Agent 与工具定义
4 种投影
视图、仪表盘、应用和翻译——同样用元数据编写、过同一道门禁,但不是本体的一部分
4 道闸门
类型化、校验、审阅、治理——横在 Agent 与你的用户之间

运行时如何执行它

一份定义进去,其余全部派生。

本体以类型化元数据写在 objectstack.config.ts 里,编译成 objectstack.json 工件。运行时从这个工件派生可更换驱动之上的数据库结构、生成的 REST 与实时 API、Console 的服务端驱动界面,以及一个 MCP 服务器——并在每一次调用时强制执行这份定义。RBAC、行级与字段级安全、共享和审计,对一次 REST 请求、一次 Console 点击和一次 Agent 工具调用一视同仁。运行时不做任何推理:跑的就是被校验过的东西。

objectstack.config.ts
  # 本体:用类型化元数据写下的定义
        │  编译
        ▼
objectstack.json
  # 运行时加载的工件
        │  派生
        ▼
数据库结构 · REST 与实时 API
服务端驱动界面 · MCP 服务器
        │  每一次调用都强制执行
        ▼
RBAC · 行级与字段级安全 · 共享 · 审计

核心

六类东西,一份定义

本体是一份定义,开放、带版本。它以普通 TypeScript 的形式住在你的仓库里,可以当作一个 diff 来审阅,规范与许可证都是 Apache-2.0——而不是一张锁在厂商系统里、只能通过那家厂商的控制台触达的图。其余一切都由运行时从它派生。

指南

对象与字段 

业务里的实体及其类型化属性——校验、公式、默认值、文件。

关系

对象之间的查找与主从关联。

动作

用户或 Agent 可以对一条记录发起的操作,以及它们显示的条件。

指南

权限 

谁可以读取、创建、编辑和删除什么——RBAC、行级与字段级安全、共享。

指南

流程 

业务过程——DAG 流程、记录触发器、定时任务、审批、工作流。

指南

Agent 与工具定义 

应用自带的 AI Agent、它们可以调用的工具,以及塑造它们的技能。

投影

视图、仪表盘、应用和翻译是它的投影

投影同样用元数据编写、由同一道门禁校验,但它们不是本体的一部分。改动核心,投影跟着变;删掉一个投影,它所展示的业务不变。这个区分划定了 Agent 为了推理业务必须装下的范围:是核心,而不是每一个屏幕。

投影

视图

把一个对象的字段和权限投影到一张网格上。

投影

仪表盘

把对象上的查询投影到图表上。

投影

应用

把对象、视图和动作组合成一个可导航的产品。

投影

翻译

把每一个标签投影到一种语言。

它不是什么

关于这个词的四道护栏

「本体」这个词涵盖好几种不同的东西,还有两种思维习惯随它一起出现。四者在这里都不成立;ObjectStack 与它们的逐项对比在对比页。

不是知识本体

OWL、RDF 和知识图谱描述一个领域,带有类继承和公理,并由推理引擎推理。ObjectStack 没有对象继承、没有公理、没有推理器:定义先被校验——由 Zod schema 和 os validate——然后被运行。abstract 这个键正是因此从规范中移除。

不是业界所说的语义层

语义层是架在现有系统之上的一层只读映射:它描述业务,但不运行业务。ObjectStack 的本体就是系统——数据库、API、界面和 Agent 工具都从它派生。联邦接入外部数据源是可以的,默认只读,而且还处于早期。

不是哲学意义上的形式本体

它不对「什么东西普遍存在」做任何断言。它是一家企业的一个应用,定义得精确到足以运行。

不是「代码消失了」

代码搬进了运行时。钩子、动作体,以及公式、谓词和策略里的 CEL 表达式,都在运行时的权限与审计围栏内运行;页面里的受限 JSX 被解析成服务端驱动的界面树,从不当作代码执行。没有一样散落在一个本体随后还得去描述的代码库里。

四个承诺

每个承诺都点名兑现它的机制

定位句后面的四个词不是形容词。每一个都由运行时、工具链或许可证里某个具体的东西兑现,这里把那个东西逐一列出。

指南

可执行 

定义就是在跑的那个东西。运行时从编译后的工件派生数据库、REST 与实时 API、Console 界面和 MCP 服务器,并在每一次调用时强制执行权限与审计——REST 请求、Console 点击和 Agent 工具调用一视同仁。

指南

AI 可编写 

脚手架安装 AI 技能包并写入一份 AGENTS.md,编码 Agent 一开始就带着协议的规则。Strict TypeScript 和 Zod 在编辑器里拒掉形状错误;os validate 拒掉类型检查能过、运行时却会静默失败的元数据——悬空绑定、错误的 CEL 谓词、缺失的安全姿态——并以定位到位置、可据以修正的文字返回,Agent 自己读、自己改。你审批一个小而可读的 diff。

指南

Agent 可操作 

跑起来的应用就是一个 MCP 服务器,默认开启:每个对象是一个工具,每个暴露出来的动作是一个工具,权限决定 Agent 可以调用什么,审计记录它做了什么。Agent 通过与人相同的类型化、权限感知的表面操作应用——从不是裸 SQL 或抓取界面。

源码

归你所有 

定义以普通 TypeScript 的形式住在你的仓库里,在你的版本控制里带版本、可以当作 diff 审阅——不是一张锁在厂商系统里的图。ObjectStack 仓库里的一切都是开放栈——协议、微内核、SDK、CLI 和生产运行时——Apache-2.0,没有 open-core 的星号;脚手架生成的项目开箱即可容器化自托管。

决策面

改什么、谁来审、跑什么

你声明运行时派生运行时强制执行
对象、字段、关系可更换驱动之上的数据库结构;生成的 REST 与实时 API字段上声明的校验、公式与默认值
动作带权限检查的按钮与服务端操作;每个暴露的动作同时是一个 MCP 工具动作显示的条件,以及谁可以发起它
权限无需生成——它本身就是围栏RBAC、行级与字段级安全、共享和审计,对 REST 请求、Console 点击和 Agent 工具调用一视同仁
流程DAG 流程、记录触发器、定时任务、带队列的审批多级审批链与完整的审计轨迹
Agent 与工具定义应用对外提供的 MCP 服务器,默认开启权限决定 Agent 可以调用什么;审计记录它做了什么
视图、仪表盘、应用、翻译Console 的服务端驱动界面视图投影的是对象的字段和权限——删掉它,业务不变

FAQ

常见问题

它和 Palantir 那种本体是一回事吗?

词汇相近,住的地方不同。运营本体在从其他系统集成来的数据之上定义对象、链接、动作和权限,并把编辑写回去;Palantir Ontology 是这一类的参照。它仍然是架在别处系统之上的一层,而且在 Palantir 这里是一个专有平台。ObjectStack 从定义本身派生数据库结构、API、界面和 MCP 工具,而且是 Apache-2.0。

有了本体,是不是就没人写代码了?

不是。代码不会消失——它搬进了运行时。钩子、动作体,以及公式、谓词和策略里的 CEL 表达式,在运行时的权限与审计围栏内运行;页面里的受限 JSX 被解析成服务端驱动的界面树,而不是被执行。变化在于:没有一样散落在一个本体随后还得去描述的代码库里。

为什么大小这么重要?

因为闭环的两半都依赖它。写定义的 Agent 和操作应用的 Agent 都需要把整件东西装下:小到 AI 能一次读全的应用,才能被整体阅读、整体推理、整体重构。自带的示例 CRM——对象、视图、一个仪表盘、一条线索转化流程、权限集、动作、翻译——小到 Agent 可以端到端加载,回答得出「改这里会弄坏什么」。

ObjectOS 在哪里?

想把同一个循环托管起来、在浏览器里用、什么都不用安装?那就是 ObjectOS——建立在 ObjectStack 之上的商业运行环境。ObjectOS 既可托管在浏览器中、无需安装(ObjectOS Cloud),也可自管部署在你自己的基础设施上(ObjectOS Enterprise);无论哪个版本,你都可以导出本体,拿到开源的 ObjectStack 运行时上运行。

下一步

继续完善你的评估材料。