For developers

How OpenGeni runs your agents.

The runtime architecture, the compute targets a session can run on, a Helm quick start and the HTTP surface you build against.

§ 01Architecture

The event log is the truth. The bus is just the wire.

Clients talk only to the API. Durable execution coordinates the work and every session is written down — so a crash or a deploy doesn't lose it.

active path request packet
hover any node to isolate its connections
The log is truth.

Miss live events and the API backfills them in order. Nothing is inferred after the fact — sessions replay exactly as they happened.

Live is just delivery.

Streaming is a convenience layer, not the record. That separation is why the hot path stays cheap and the history stays honest.

Workers do the work.

Model calls, tools, sandbox commands, repo edits — each runs once and is written down, so a restart never re-charges or re-sends.

under the hood · Postgres, Temporal, NATS, S3, the OpenAI Agents SDK and MCP — boring, proven pieces, none of them hidden from you.

§ 02Compute targets

Pick where every session runs. A managed sandbox, or your own machine.

A fresh isolated environment we create and tear down, or a machine you already own — with your repos and files mounted in. Choose per session.

WORKERrunStream()OpenAI Agents SDKINTERFACESandboxClient.createSession().applyManifest().deserialize().delete()containerremote sandboxtrusted localno-op (none)your own ↗
$ implements SandboxClient

Bring your own runtime.

Any backend that satisfies the SandboxClient contract works: create, resume, delete, and materialize resources. Add yours next to the ones we ship.

Surface
createSandboxClient(settings)
Resources
Manifest with gitRepo + s3Mount entries
State
deserialize / serialize SandboxSessionState
OPENGENI_SANDBOX_BACKEND=docker
Docker
default for self-host
OPENGENI_SANDBOX_BACKEND=modal
Modal
remote, burstable
OPENGENI_SANDBOX_BACKEND=local
Local
dev convenience — not isolation
OPENGENI_SANDBOX_BACKEND=none
No-sandbox
talk-only / planning

Plus anything else that implements the contract.

Sandbox preparation profiles

Secure by default. Nothing leaks in unless you say so.

No host environment enters the sandbox by default. Opt into a profile — Azure, GitHub — or allowlist variables explicitly. Model keys stay with the worker.

Default image

Tuned for infra work out of the box.

Terraform, Checkov, Azure CLI, GitHub CLI and shell utilities included. Swap in your own image any time.

§ 03Quick start

One stack. Every cloud.

Where agents run is a compliance question, not a preference. Pick a profile, point it at your cloud — the stack you develop against is the one that ships.

~/opengeni · azure-managed
bash
$
values.yaml (excerpt)helm · terraform
  • product access modelocal · configured · managed
  • billing modedisabled · stripe
  • sandbox backenddocker · modal · local · none
  • secretsSecret · ExternalSecret · Key Vault / Secrets Manager
  • availabilityrolling · PDB · topology spread · HPA opt-in
full chart in deploy/helm/opengeni
§ 04API

Sessions are just an endpoint. No magic SDK required.

Drive the runtime over plain HTTP. The app we ship is just another client.

/// Sessionsstart, stream, reply
/// Contextfiles and knowledge
/// Scheduleswork that runs itself

Routes shown without the /v1 path prefix for clarity. The shipped API mounts everything except /healthz under /v1.

Built in the open

Built in the open.

Apache-2.0, with contribution and security guides in place. Next up: agents and environments as first-class resources, webhooks, and more sandbox backends.

← Back to product