Multi-tenant runtime
Private betaKarmakar Venturesgithub.com/letslego/agent-fleet-runtime

Run a fleet with budgets, kill switches, and a ledger — not a chat window with extra steps.

Tenants, tool allowlists, hard spend/step/time caps, mid-tool abort, sequenced audit, metering hooks. The planner can stay deterministic for demos, or you swap in an LLM later without rewriting isolation.

Agent Fleet Runtime — voiceover demo

Who it's for

Platform teams and founders who need to run agents for more than one tenant — and prove what each run did.

  • Internal platform groups wrapping existing tools for several product lines
  • Founders selling agent capacity who cannot share ledgers across customers
  • Ops leads who need a kill switch that works while a tool is still in flight

The problem

One agent on a laptop is a demo. Ten tenants sharing tools without isolation is an incident. Prompt-level “please stay in budget” is not a budget. And if you cannot replay the tool calls, you cannot explain the bill — or the damage.

What breaks without it

  • No tenant wall: IDs, usage, and ledgers leak across customers.
  • Budgets live in the planner, so they fail when the planner improvises.
  • Kill switches fire after the tool returns — too late for sleep, spend, or a bad fetch.

How it works

Concrete path through the private beta — not a capability cloud.

  1. Create a tenant

    Admin issues a tenant. The API key is shown once, hashed at rest, and every later read is scoped by tenantId. Cross-tenant IDs return 404, not 403.

  2. Register an agent with an allowlist

    Each agent gets the tools it may touch. Unknown or denied tools never run. Built-in demo tools (echo, search, calculator, sleep, memory, mocked http_fetch) stay off the public network.

  3. Execute under hard budgets

    Runs take max steps, max USD (integer micros), and max wall time. The runner — not the planner — refuses the next tool if it would exceed a cap.

  4. Kill, ledger, meter

    Tenant, agent, or run kill switches abort work, including in-flight sleep via AbortSignal. Every tool call appends an immutable sequenced ledger. Metering emits step, tool, spend, and wall-time events; denied tools do not bill.

Proof points

From the working repo and demo scripts. Design partners welcome. No fabricated case studies.

  • Private-beta runtime with a Fastify API and a single-page operations dashboard.
  • Deterministic planner (scripted prompts) so demos and tests do not drift. Swap plan() later for an LLM.
  • Coverage includes budget exhaustion, concurrent runs, tenant isolation, mid-run kills, and metering hooks.
  • Local path: npm test && npm start, or docker compose up --build. Demo script included.
  • SQLite for single-node beta; the repository layer is the Postgres swap point. No invented customer logos — design partners welcome.

Join waitlist / book a 15-min pilot

Tell us you want Agent Fleet Runtime. We'll reply with a demo path, not a deck.

FAQ

Does this replace my agent framework?

No. It is the multi-tenant execution layer around agents: isolation, budgets, kill switches, ledger, metering. The default planner is scripted so a pilot is reproducible. You can replace plan() with your LLM loop without touching those guarantees.

Can I kill a run while a tool is executing?

Yes. Flags are reloaded before every step, and in-flight sleep is aborted with AbortSignal. That is the point of a runtime kill switch versus a dashboard toggle that waits for the loop to notice.

What does metering look like?

Hooks emit step, tool-call, spend, and wall-time events as tools succeed. Denied tools do not bill. The dashboard shows usage; the HTTP API exposes /v1/usage for the tenant.

Is the ledger the source of truth?

Tool calls append immutable events with monotonic seq. You can fetch /v1/runs/:id/ledger and /replay. That is how you explain a run to a tenant — or to yourself at 1 a.m.

What is in the private beta vs later?

Scripted planner, mocked http_fetch, SQLite. Do not point this process at production credentials. Postgres persistence and a live LLM planner are the next increments, not vapor on the homepage.