the part they skip
Frameworks help you build an agent. What they don't help with is the part that matters the moment it touches the real world: running it for other people — spending their money, touching their data, taking consequential actions — without leaking data between customers or doing something wrong that can't be undone.
One customer's agent can't reach another's data — even through a shared tool.
Letting an agent act, not just chat — with a way to stop it doing something catastrophic.
Every consequential action gets authorized, approved, and stays reversible. Nothing ships ungated.
Each tenant's spend is capped — the meter is a throttle, not just a bill.
one through six
A tool owned by tenant A, called by tenant B, runs under B's scope, never A's. Proven: A can't read B, even through a tool A doesn't own.
Capability envelopes, an approval queue (authorize-then-act), a kill switch, soft-launch, and a crisis protocol — wired at every entry point.
Internal = in-process registry (fast, tenant-scoped). External = MCP, both directions. MCP is never the internal bus.
A quality gate: generate → verify → repair → ship. The model proposes; the backend enforces the schema.
A new vertical means composing what's already there, not rebuilding it. Two unrelated residents ride one spine — and the purity lint proves it.
Credits decremented atomically; a turn deflected to crisis resources is refunded. You don't bill someone in distress.
The governance trace on the home page lights up exactly these six checkpoints, in real time — here's what they mean. Each one is a guarantee, and each fails safe.
SET LOCAL app.current_tenant binds RLS for the turnno tenant context ⇒ zero rowsSafety properties you can read, not policies you have to trust — UPDATE … SET credits = credits - :n WHERE credits >= :n, an advisory-locked book_if_free. Watch two of them hold, live →
let's talk
If tenancy, governance and metering are what stand between your agents and production, that part is already built. Let's talk.