OpenInterpretability
  • Ekbasis
  • Guide
  • Pricing
  • Research
  • Lab
  • Tools
  • Notes
  • Registry
  • Manifesto
Sign inGet API keyAPI key
OpenInterpretability

Ekbasis API: know what an action will do before your agent runs it. From an independent lab for AI-agent safety. Open weights, Apache-2.0.

Get your API key
Ekbasis API
  • Console · sign in
  • Getting started
  • Pricing
  • For agents (agents.md)
  • Results and models
  • Client and CLI
  • Cookbook
The lab
  • About the lab
  • Open tools
  • Observatory
  • ProbeBench
  • InterpScore
  • Academy
Research
  • Manifesto
  • Roadmap
  • Papers & posts
  • Docs
Community
  • GitHub org
  • Notebooks
  • SDK (openinterp)
  • HuggingFace
© 2026 OpenInterpretability — Apache-2.0 for code, CC-BY 4.0 for docs.Built in public.

Product · October 10, 2026

Introducing the Ekbasis API

A consequence model that tells your agent what an action will do — before it runs it.

Agents make mistakes that are hard to undo. Most are not failures of intelligence; they are actions whose effects the agent could not see from where it stood. A reset that discards two hours of uncommitted work. A wire transfer whose fee pushes it over the balance. A reply-all that sends internal pricing to a client.

Today we are releasing the Ekbasis API. Ekbasis is a consequence model: you give it the current state and the action your agent is about to take, and it returns a calibrated probability for what will happen — whether work is lost, whether a payment goes through, who ends up seeing a message. It answers in a single forward pass and does not generate text, so it is fast and inexpensive enough to consult before every action that matters.

State

Working tree: app.py, utils.py and README.md have uncommitted changes (2 hours of edits, never committed or stashed).

About to: git reset --hard

Uncommitted changes are gone98.5%
Nothing is lost1.5%
A real response from the hosted API: 135 input tokens, 0.19 seconds on the server.

A forecaster, not a judge

Ekbasis does not decide what your agent is allowed to do. It tells you what an action is likely to cause, and how sure it is. Your code, or a person, decides what to do with that. When the state describes the world fully, its confidence is high; when a fact that decides the outcome is missing, its confidence drops, which is a signal to go and read that fact rather than guess.

You describe the state in plain language, end it with the action, and ask typed questions: a choice among outcomes you list, a yes-or-no question with written criteria, or a count. Several questions about the same state go in one request.

Where it fits

The fastest way to start is the git guard: one command reads your repository, builds the state and flags commands that would lose work. The same client includes a hook for Claude Code that asks before risky shell commands, and an MCP server that any compatible agent can call. For actions that are not commands — payments, calendars, email, cloud resources — the REST API takes a state and your questions directly.

pip install ekbasis
export EKBASIS_URL=https://openinterp.org/api/v1
export EKBASIS_API_KEY=ekb_...

ekbasis git-check -- "git reset --hard"
# Ekbasis: RISKY (lose uncommitted work: 99%)

What we measured

We study whether a consequence model makes agents safer in pre-registered experiments: each plan is hashed before the runs, and the hypotheses that fail are published alongside the ones that hold. The studies are small and run by us, so we report the counts.

Ekbasis is not limited to git. It was trained on git and on worlds whose rules are written in the state, and it works wherever the state writes down the facts that decide the outcome. Across 171 scenarios in 21 domains — payments, files and shell, databases, email, calendars, cloud and Kubernetes, docker, CI pipelines, identity and access, networks, data and ML pipelines, scheduled jobs — it answered 168 of the 168 we scored correctly. We wrote those scenarios ourselves, with the deciding facts in the state, so they show reach rather than a benchmark; every result is published. With agents:

  • — On unmodified Gitea, Nextcloud and Roundcube driven through a real browser, Claude Sonnet did harm in 6 of 24 tasks on its own and in 1 of 24 with Ekbasis (one run per task). Paper.
  • — Operating a real Kubernetes cluster, Claude Haiku did harm in 24 of 36 runs on its own and in 2 of 36 with Ekbasis. Asking the human before every action also avoided harm, with three times as many questions. Study.
  • — On our seven demo apps, with GLM-5.3-Flash as the agent, we ran the same 47 tasks three times — twice through this API, with an ordinary key. Harmful runs went from 23, 24 and 26 of 47 to 3, 0 and 0; finished tasks roughly doubled. The same tasks each time, so this shows the result holds from run to run, not across new tasks. Data.
  • — On a second set of demo apps (a bank, travel booking and others), harm fell with Ekbasis for Claude Sonnet, Claude Haiku and Qwen 9B. For GLM and Qwen 4B it fell too, but after removing runs affected by a harness error the interval reaches zero, so those two are not conclusive (erratum). A placebo reminder, tested with Claude Sonnet, did not help.
  • — On TS-Bench, a third-party benchmark that labels agent steps before they run, we pre-registered and ran all 7,182 test steps for $0.56. On its AgentDojo prompt injections, Ekbasis scored F1 97.5 (95% CI 96.1–98.6) against GPT-4o's published 56.6, in one forward pass per step. Rewriting the injection's wrapper, and on 101 items also the attacker's addresses, changed none of 301 decisions; that argues against memorized wording but cannot rule out that the general injection pattern was seen in pretraining. Study.

Not everything worked. On TS-Bench's AgentHarm and ASB subsets Ekbasis was weak: F1 54.6 and 64.3, below what labelling every step unsafe would score, missing most unsafe steps there. Our reading, not separately tested: those labels follow the request's intent or the tool's origin, which a forecast of one step's effect does not capture. A calibrator fitted on two of its subsets made the third worse, so calibration holds per domain. With Claude Haiku on real apps, our pre-registered hypotheses failed: a warning alone was not enough for a smaller agent to change course. In the Kubernetes study, Ekbasis as a guard missed matching Claude Sonnet as a guard by one case — at about one twenty-seventh of the cost per run. Three earlier studies missed their bars as well. All of it is in the paper and the cookbook.

Limitations

Ekbasis is a warning layer that can be wrong, not a security boundary. It is strongest where the state states the facts that decide the outcome, and weakest on domains far from its training, on command types it has not seen and on obfuscated commands. A low probability of harm is not proof of safety: keep your confirmations and backups. When it cannot answer — no key, no credits, no response in time — it fails closed and reports that it cannot foresee the outcome, which every client treats as risky.

Availability and pricing

The Ekbasis API is available today. It costs $0.30 per million input tokens (launch price: $0.04), with no charge for output, since the model generates none; a typical check reads about 1,500 tokens. Credits are prepaid in USDC or USDT on Polygon, Arbitrum, Base or Ethereum, with no subscription and no minimum. The weights are open under Apache-2.0, and running them on your own hardware is free. The API logs request metadata to operate and bill the service; it never stores the content of your requests.

For launch, the first 100 accounts to redeem the code EKBASIS100 in the console receive $1 in credits.

Get an API keyRead the guideFor agents