|
9 | 9 | > **One executable business ontology.** AI writes it, the runtime runs it, agents |
10 | 10 | > operate it, you own it. |
11 | 11 | > |
12 | | -> 本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。 |
| 12 | +> 本体即软件。 |
13 | 13 | > |
14 | | -> ObjectStack turns the whole app — data model, UI, workflows, permissions — |
15 | | -> into typed metadata that fits in a single context window: apps small enough |
16 | | -> for AI to hold whole. Agents read it whole, reason it whole, refactor it whole. |
17 | | -> |
18 | | -> That metadata is your **business ontology** — an open, versioned definition of |
19 | | -> your objects, relations, actions, permissions, flows, and agent and tool |
20 | | -> definitions that you own, not code scattered across a framework. It is |
21 | | -> executable, not a knowledge-representation ontology: no inheritance, no |
22 | | -> axioms, no reasoner. Strict TypeScript, Zod schemas, and a validation gate |
23 | | -> catch the agent's mistakes at authoring time; the runtime derives the |
24 | | -> database, REST API, UI, and MCP server, and enforces permissions and audit on |
25 | | -> every call. |
| 14 | +> Apps small enough for AI to hold whole. |
26 | 15 |
|
27 | | -`Fits in an agent's context` · `Typed, validated, governed` · `Self-host anywhere` · Apache-2.0 |
| 16 | +`Executable` · `AI-writable` · `Agent-operable` · `You own it` · Apache-2.0 |
28 | 17 |
|
29 | 18 | <p align="center"> |
30 | 19 | <a href="https://youtu.be/CX_FlOoOtr0"> |
|
34 | 23 | <a href="https://youtu.be/CX_FlOoOtr0"><b>▶ Watch: ObjectStack in 90 Seconds</b></a> |
35 | 24 | </p> |
36 | 25 |
|
37 | | -**Everything in this repo is the open stack** — protocol, microkernel, SDK, |
38 | | -CLI, and the production runtime, Apache-2.0 with no open-core asterisks |
39 | | -([LICENSING.md](./LICENSING.md)). You build & ask with Claude Code or any coding |
40 | | -agent: the agent writes the metadata in your repo and operates the running app |
41 | | -over MCP. Want the same loop hosted, in the browser, nothing to install? That's |
| 26 | +You build & ask with Claude Code or any coding agent: the agent writes the |
| 27 | +metadata in your repo and operates the running app over MCP. Want the same loop |
| 28 | +hosted, in the browser, nothing to install? That's |
42 | 29 | [ObjectOS](https://www.objectos.ai), the commercial runtime environment built on |
43 | 30 | this stack. |
44 | 31 |
|
@@ -87,7 +74,21 @@ No install at all? Open a live app on |
87 | 74 | </p> |
88 | 75 | <p align="center"><sub>Prefer clicking? Studio authors the same metadata visually — same artifacts, same gate.</sub></p> |
89 | 76 |
|
90 | | -## What one definition gives you |
| 77 | +## What we mean by ontology |
| 78 | + |
| 79 | +Your app's definition — objects and fields, relations, actions, permissions, |
| 80 | +flows, and agent and tool definitions — is a **business ontology**: open, |
| 81 | +versioned, and yours, not code scattered across a framework. It is executable, |
| 82 | +not a knowledge-representation ontology: no inheritance, no axioms, no reasoner — |
| 83 | +validated rather than reasoned over — and it is not a semantic layer over your |
| 84 | +existing systems (federating an external datasource is read-only by default and |
| 85 | +early). Views, dashboards, apps, and translations are projections of the |
| 86 | +ontology, not part of it, and code does not disappear: it moves into the |
| 87 | +runtime, as hooks, action bodies, CEL, and constrained JSX. The full account is |
| 88 | +[Business Ontology](https://objectstack.ai/docs/concepts/ontology); the short |
| 89 | +form is the [glossary entry](https://objectstack.ai/docs/getting-started/glossary#business-ontology). |
| 90 | + |
| 91 | +## The runtime runs it |
91 | 92 |
|
92 | 93 | Point an agent at an empty repo and you get a one-off codebase: every screen |
93 | 94 | hand-invented, every mistake yours to find at runtime. ObjectStack gives the |
@@ -144,6 +145,24 @@ curl http://localhost:3000/api/v1/data/support_desk_ticket |
144 | 145 | In the browser, the typed client SDK and React hooks (`useQuery`, `useMutation`, |
145 | 146 | `usePagination`) live in [`@objectstack/client-react`](packages/client-react). |
146 | 147 |
|
| 148 | +## Agents are the first users |
| 149 | + |
| 150 | +Objects are tools, actions are tools, permissions decide what an agent may call, |
| 151 | +and audit records what it did. Because the app is typed metadata, the runtime |
| 152 | +serves it as an **MCP server** at `/api/v1/mcp` — on by default. Point any MCP |
| 153 | +client at it and an agent can inspect and *operate* the app you just built, |
| 154 | +under the same permissions and RLS as a human: |
| 155 | + |
| 156 | +```bash |
| 157 | +claude mcp add --transport http my-app http://localhost:3000/api/v1/mcp |
| 158 | +``` |
| 159 | + |
| 160 | +The first tool call opens a browser to sign you in — each deployment is its own |
| 161 | +OAuth server, so there's no token to copy-paste. Headless setups (CI, |
| 162 | +containers) use an API key instead. Objects are exposed automatically; actions |
| 163 | +opt in with `ai: { exposed: true }`. See |
| 164 | +[Connect an MCP Client](https://objectstack.ai/docs/ai/connect-mcp) for both flows. |
| 165 | + |
147 | 166 | ## Why the mistakes don't ship |
148 | 167 |
|
149 | 168 | "AI writes it" is only useful if AI's mistakes don't reach production. Four gates |
@@ -171,35 +190,18 @@ hoping. Measure it yourself: |
171 | 190 | find examples/app-crm/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -l |
172 | 191 | ``` |
173 | 192 |
|
| 193 | +## You own it |
| 194 | + |
| 195 | +**Everything in this repo is the open stack** — protocol, microkernel, SDK, |
| 196 | +CLI, and the production runtime, Apache-2.0 with no open-core asterisks |
| 197 | +([LICENSING.md](./LICENSING.md)). The definition lives in your repository as |
| 198 | +ordinary TypeScript, versioned in your VCS and reviewable as a diff — not a |
| 199 | +graph held inside a vendor's system. |
| 200 | + |
174 | 201 | > The ontology is the software. Your objects, relations, actions, permissions, |
175 | 202 | > flows, and agent and tool definitions are your business ontology — and the |
176 | 203 | > definition layer of the AI era should be an open protocol you own. |
177 | 204 | > [Read why](https://www.objectos.ai/en/blog/ai-ontology-open-protocol/). |
178 | | -> |
179 | | -> What that does and does not mean: the ontology is *executable*, so it is |
180 | | -> validated rather than reasoned over — there is no object inheritance, no |
181 | | -> axioms and no reasoner. It is not a semantic layer over your existing systems |
182 | | -> (federating an external datasource is read-only by default and early). Views, |
183 | | -> dashboards, apps, and translations are projections of the ontology, not part |
184 | | -> of it. And code does not disappear: it moves into the runtime — hooks, action |
185 | | -> bodies, CEL, and constrained JSX. |
186 | | -
|
187 | | -## Your app is AI-operable, for free |
188 | | - |
189 | | -Because the app is typed metadata, the runtime serves it as an **MCP server** at |
190 | | -`/api/v1/mcp` — on by default. Point any MCP client at it and an agent can |
191 | | -inspect and *operate* the app you just built, under the same permissions and RLS |
192 | | -as a human: |
193 | | - |
194 | | -```bash |
195 | | -claude mcp add --transport http my-app http://localhost:3000/api/v1/mcp |
196 | | -``` |
197 | | - |
198 | | -The first tool call opens a browser to sign you in — each deployment is its own |
199 | | -OAuth server, so there's no token to copy-paste. Headless setups (CI, |
200 | | -containers) use an API key instead. Objects are exposed automatically; actions |
201 | | -opt in with `ai: { exposed: true }`. See |
202 | | -[Connect an MCP Client](https://objectstack.ai/docs/ai/connect-mcp) for both flows. |
203 | 205 |
|
204 | 206 | ## Ship it |
205 | 207 |
|
|
0 commit comments