OpenBI · the semantic layer, for agents
One number. For your reports and your agents.
An AI agent answers a question about your business in seconds. Give it only raw tables, and it has to guess what your words mean, and two agents guess differently. OpenBI gives agents the model your reports already use: its measures, its definitions, its relationships. On machines you own.
The problem
An agent with raw tables guesses.
A table holds rows, not meaning. Which customers count, which months, what “stay” means: those choices live in people’s heads and in the model behind your reports. An agent that sees only the tables has to make them up. Its answer comes back fluent and sure of itself, and it may not be the number your reports show. Ask two agents, and you may get two numbers.
“When I was building the MCPs it became clear that they were useful but they were missing a ‘semantic layer’; without it the agent will come with different numbers.”
Same question, different answers
How long does a customer stay? 17 months. Or 9. Or 6.
We asked one question of an example that ships with OpenBI: a made-up subscription service with 30,000 customers since January 2023. Measured, not made up.1
The question
“How long does a customer stay with us?”
-
From the model
17months
The model’s measure, Median tenure
Half of all customers have left after 17 months. Customers who are still with us count as staying, for the months they have stayed. The report page shows the same number.
-
Raw table, one reading
9months
The middle value of the Tenure column
Over all 30,000 customers. It treats the 13,981 customers who are still with us as if they had just left.
-
Raw table, another reading
6months
The same, over those who left
Over the 16,019 customers who have left. It drops everyone who is still a customer.
Measured
Nothing on the screen says which one is wrong.
All three come from OpenBI’s own engine, version 0.3.70, on a copy of the example: the model’s measure, and plain SQL over the same table and over the source file itself. A separate calculation of the model’s method on the same file also gives 17 months.
The shorter answers are not bad arithmetic. Each answers a slightly different question, and an agent that reads raw tables has no way to know which one you meant.
The semantic layer
Agree once what a number means.
The idea is decades old: write down what each number means, in one place, and let every report and every tool ask that place. OpenBI puts that idea in front of agents. In OpenBI, that place is the model.
- Measures
- Each business number, defined once: its formula, its format, a one-line description and a folder to find it in. Median tenure is one.
- Relationships
- How the tables join: each customer’s months to the customer, each sale to its product. Nobody guesses the joins again.
- Descriptions
- Plain words on tables, columns and measures, read by people and by agents alike.
- Folders
- Measures grouped by the question or the page they serve, so the right one is easy to find.
- Roles
- Who may see which rows, for the people who read the reports on OpenBI Server.
- Plain text, in git
- The model is a folder of plain text files, one per table. Every change can be reviewed, versioned and undone like code.
How your agent uses it
148 tools. The model’s measures first.
Connect an agent to OpenBI Studio and it works in the project you have open, through 148 tools.2 It reads the model, asks it questions and writes report pages, and you see every change in the studio as it happens.
-
It reads the model
The measures with their formulas, descriptions and folders; the tables and columns with theirs; the relationships between them.
-
It asks the model
Its questions run on OpenBI’s engine, the same engine your report pages ask, over the same data and the same relationships.
-
The model’s measure first
OpenBI tells every agent that connects: when one of the model’s measures gives the number, use it and name it, so the answer is the number the reports show.3
-
Free when none fits
When no measure fits the question, the agent writes its own query against the model, explores and answers, and says the calculation is its own.
-
Worth keeping? A measure.
A figure you will rely on or come back to is saved in the model as a measure, with a description and a folder, and the agent tells you. Rather decide yourself? Ask it to propose instead: the measure appears in the studio’s formula bar with its value, and you keep it with Enter or drop it with Esc.
-
The agent you choose
The studio’s Agent button connects the Claude app, Claude Code, Cursor, or ChatGPT’s desktop app and Codex, one click each. Any other client that speaks MCP gets the settings to copy.
OpenBI has no AI model of its own: the agent is the one you connect. The studio’s connection for agents listens on your own computer only, and asks for the studio’s key. ChatGPT on the web isn’t offered: it reaches only servers on the internet, and OpenBI Studio is never put there. Agents connect to OpenBI Studio today; OpenBI Server shares the model and its reports with your team, and has no connection for agents yet.
The same number, by construction
Same engine. Same measure. Same number.
A report page and an agent don’t each work out their own version. Both send their question to OpenBI’s engine and both name the same measure, so they get the same answer. When a definition changes, it changes once, for both.
Every release, answer for answer
12,628 of 12,628stored answers, byte for byte the same as the release before
Before a release, the new engine answers a stored set of 12,628 queries over 16 test models, and every answer is compared with the previous release’s. OpenBI 0.3.70 against 0.3.69: none changed.4
Against reference answers
11,673 of 12,578queries gave the reference answer, to one part in a billion
A wider sweep compares the engine with answers recorded elsewhere on the same models and the same rows. Of the rest, 24 gave the same answer but too slowly, 791 were refused on both sides, 68 OpenBI answered where the reference refused, and 8 ran out of time. 14 still differ: the same 14 in every release’s sweep, each one listed and tracked.5
Your own infrastructure
On machines you own. At home, or at the office.
The model, the data and the engine run where you put them: a laptop, a small computer at home, an office PC, your own server room. We host nothing.
- Windows and Mac. OpenBI Studio, OpenBI Server and OpenBI Gateway run on both. OpenBI Server on Linux is to follow.
- The server’s one call home. OpenBI Server checks its licence with Keygen, the licensing service we use: your licence key, your domain, the server’s machine name and platform, and a machine fingerprint, a one-way hash of the machine’s id. Its requests also name the server’s version. OpenBI Studio needs no licence key.6
- $1 per user a month for companies, for OpenBI Server. OpenBI Studio is free. No capacity fees: extra nodes and failover clusters cost nothing more.7
Your agent is the part that talks to the outside.
OpenBI Studio, OpenBI Server and the engine have no AI of their own and send nothing to any AI provider. The agent you connect is another matter: what it reads through OpenBI’s tools, a measure’s formula or a query’s rows, it sends to its own provider, as it does with anything you type into it. To keep everything in the building, connect an MCP client that runs a language model on your own machine. We have not tested that combination yet.
Get started
Three steps, then ask.
Everything on this page works in OpenBI Studio 0.3.70, on one computer, before you share anything with anyone.
-
Download OpenBI Studio
For Windows, or a Mac with Apple silicon. It is free and needs no licence key.
Download -
Open a model
To ask this page’s question yourself, choose File, Open the churn example. For your own work, Open project opens a model’s folder, and New project starts an empty one; the agent can help you write its first measures.
-
Connect your agent
Choose Agent on the Home tab (on a Mac, Connect an agent… in the menu bar), then Connect the Claude app, Connect Claude Code, Connect Cursor or Connect ChatGPT. Then ask it: How long does a customer stay with us?
Questions
Asked often.
Do I have to build a model first?
For the agent to use your agreed definitions, yes: someone has to agree each one once, and the model is where it is written down. The examples that ship with OpenBI come with theirs. For your own data, the agent can help: ask it to propose measures, and keep the ones you agree with. Until a measure exists, the agent still answers, and says the calculation is its own.
Does my data go to OpenAI or Anthropic?
Not from OpenBI. OpenBI Studio, OpenBI Server and the engine have no AI of their own and call no AI provider. The agent you connect does: what it reads through OpenBI’s tools, such as a measure’s formula or a query’s rows, goes to the provider behind that agent, under your agreement with them. For nothing to leave, use an MCP client with a language model on your own machine; we have not tested that yet.
One exception, if you install it: the Customer Service plug-in, a separate download, can use an agent of its own, Anthropic’s Claude with your own key. Its setup says so before you choose it.
What if no measure fits my question?
The agent is free to work it out: it writes its own query against the model, answers, and says the calculation is its own, so you know it isn’t one of the agreed numbers. If the figure is worth keeping, it saves it as a measure with a description, or proposes it for you to keep or drop, and from then on it is one of the model’s.
Can two people’s agents disagree?
Not when both use the model’s measures on the same version of the model: they ask the same engine for the same measure and get the same number. They can when one works out its own calculation, and OpenBI asks every agent to say so in its answer. Keep the model in git, and everyone works on the same version.
Does the agent see rows a role would hide?
In OpenBI Studio the agent works as you, the model’s developer, and sees what you see. Roles decide what the people who read your reports on OpenBI Server see.
Which agents can I connect?
The Agent button connects the Claude app, Claude Code, Cursor, and ChatGPT’s desktop app and Codex in one click each. Any other client that speaks MCP gets the settings to copy, or the address and key of the studio’s own connection. ChatGPT on the web isn’t offered, because it reaches only servers on the internet.