Your data lives in a dozen systems that don’t agree on what a customer is. We turn it into one model, then build the workflows and agents that run on it.
Every source, continuously read. Batch, streaming, or dropped in by hand.
Ingested records become typed objects. Customers, orders, invoices, sensors, each with properties, real relationships, and actions attached to the type.
The schema is defined at runtime. Add a property, link two types, and every record follows. No migrations.
Nothing is forgotten. Every change is recorded on two time axes. Ask what was true last quarter, or what you believed last quarter. Both are answerable.
The model doesn’t just describe the business. It carries the levers to move it. Logic is written against the things you modeled, not against tables. Server-side TypeScript with a client generated from your ontology: objectSet(), traversal, aggregation, all typed.
Rename a property and the function that uses it fails to compile. The ontology is the contract.
Logic chains mix LLM calls with conditionals and loops. They ship with eval suites, so a prompt change is a test run, not a vibe.
Functions compute. They don’t commit. When logic needs to change something it calls an action, and inherits its rules.
Functions read the ontology freely. Every write routes through an action, and its criteria.
The ontology isn’t a warehouse. It acts.
Every write goes through an action with submission criteria. The rules live on the type, not in someone’s head. Workflows chain actions into processes, automations watch the data and react, and decisions write back. To the ontology, and out to the source systems they came from.
The only write path. Submission criteria decide who can change what, enforced on dispatch. Same rules for a person, a workflow, or an AI agent.
Multi-step processes with branching, waits, and checkpoints. A checkpoint pauses the run until a reviewer approves in the Inbox.
React to the data itself: entity created, entity updated, or a schedule. Conditions, retries, and cooldowns keep reactions deliberate.
One command generates a fully typed TypeScript client from your ontology. Build real apps on it. The platform hosts them, wired to the same actions and permissions as everything else.
Workshop builds operational UIs without writing code. Tables, detail views, investigation graphs, action forms.
Rhetra speaks MCP. Point Claude at your workspace, or any MCP client, and it gets the full toolset: search, traverse, aggregate, run pipelines, trigger actions.
The model isn’t a database an agent scrapes. It’s a system an agent operates.
A live MCP session. Reads run free, writes route through an action, ontology edits become proposals.
rhetra-sdk mcp connects any MCP client to your workspaces with a personal token.
Every registered app can expose its slice of the ontology as a hosted MCP server. The tools are generated from your types and actions, not hand-written.
Agent writes go through actions and their submission criteria. Ontology edits land as proposals you approve in the Inbox. Agents operate inside the rules, not around them.
Based in Sweden. Available remotely.