Open managed agents

Open agents, batteries included.

OAO handles the hard parts of running AI agents: orchestration, durable runs, retries, state. You just define the agent and hand off tasks. Open source, on your infrastructure, with any model provider.

OPEN SOURCE ANY MODEL PROVIDER APACHE-2.0 — COMING SOON

Open by design

Any provider. Any model. Mixed freely.

OAO is not tied to a single vendor. Connect the model providers you choose — commercial clouds and open-source models alike — and combine them in one platform. Run Claude next to Grok next to Llama, give every agent the model that fits its job, and swap providers without rewriting a thing.

  1. 01
    Mix providers per agent

    Each agent version pins its own model preset — a coordinator on one provider can delegate to children on entirely different ones.

  2. 02
    Open-source models welcome

    Llama, Qwen, DeepSeek, GLM and Mistral are first-class citizens, not an afterthought.

  3. 03
    No lock-in, by construction

    Agents only ever see named presets — never a hardcoded model ID — so switching providers is a config change, not a migration.

SUPPORTED TODAY
  • OpenRouter 100+ models, incl. open-source
  • Anthropic Claude family
  • Grok xAI models
  • OpenAI GPT family
MODELS YOU CAN MIX
anthropic/claude-opus-5openai/gpt-5.6x-ai/grok-4.6google/gemini-3.7-flashdeepseek/deepseek-v4-proqwen/qwen3.8-maxz-ai/glm-5.1meta/llama-4-scoutmistral/mistral-large-3 + more providers coming
For developers

Two requests to a durable agent.

OAO speaks plain HTTP and Server-Sent Events — no proprietary protocol, no required client library. Create a session, stream its events, and pick up exactly where you left off after any disconnect.

1 · Start a session 201 in milliseconds — work durably queued
curl -X POST "$OAO_API/v1/projects/$PROJECT_ID/sessions" \
  -H "Authorization: Bearer oao_your_secret" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "agentId": "8f2b1c04-…",
    "initialMessage": "Investigate shipment SHP-1042 and summarize the delay."
  }'
2 · Follow every state change resumable from any committed position
curl --no-buffer "$OAO_API/v1/projects/$PROJECT_ID/events" \
  -H "Accept: text/event-stream" \
  -H "Last-Event-ID: 142"

event: run.state_changed
event: tool_call.requested
event: run.completed
Read the docs View on GitHub

Every endpoint is documented at docs.oao.sh — approvals, caller-owned tools, files, skills, and the full event reference. A typed TypeScript SDK is on the way.

Your infrastructure, your rules

Self-host it. All of it.

OAO is an open-source package you run on your own hardware — any cloud, or your own datacenter. Built EU-minded: sovereignty is a feature, not a compliance checkbox.

SELF-HOST · OPEN SOURCE

Your own infrastructure

The full platform under the Apache-2.0 license — coming soon. Your PostgreSQL, your object storage, your provider keys. Nothing phones home, so your data stays wherever you run it.

github.com/vectrix-ai/oao →
WHAT YOU NEED
  • DOCKER COMPOSE
  • POSTGRES 17
  • S3-COMPATIBLE STORAGE
  • NO PHONE-HOME
The platform

Everything an agent needs to endure.

Built on Flue — the durable runtime at the backbone of OAO — with PostgreSQL as the single source of truth. No bolted-on queues, no state scattered across services.

skill_v3 · catalog

Versioned skills

Reusable packages of instructions and resources with progressive disclosure — agents see a small catalog entry first and load full instructions only when needed, keeping context lean.

roster · 32 pinned versions

Multi-agent orchestration

A coordinator pins an exact roster of child agent versions, each with its own durable thread — sharing one sandbox workspace without mixing conversation histories.

daytona · per-version policy

Persistent sandboxes

One workspace per thread, reused across runs on Daytona sandbox infrastructure. Network mode and capabilities — filesystem, shell, browser — are selected exactly, per published agent version.

s3 · sha256-verified

Workspace backups

Every completed run re-archives the workspace to S3-compatible storage. If the sandbox disappears, OAO restores it before the agent gets any tools.

lease · fence · claim

Caller-owned tools

Your app claims tool requests under a lease with monotonic fencing, does the work in your environment, and submits one immutable, schema-validated result. Stale workers can't commit.

sse · Last-Event-ID

Resumable event stream

One ordered event feed per project. Disconnect at any moment and resume from your last committed position — the stream is the source of truth, not a best-effort broadcast.

Security

Boring where it matters.

Every tenant isolated. Every agent sandboxed. Enforced by the runtime, not a policy.

Isolated by construction

Row-level security scopes every query. Org and project IDs live in every key.

Sandboxed by default

Each agent runs in its own sandbox. Filesystem, shell, browser and network are allow-listed per version.

Write-only credentials

Provider keys are encrypted and can never be read back. Responses carry only a fingerprint.

Nothing leaks into logs

Secrets and auth headers never appear in logs or event streams. A platform rule, not a lint warning.

FAQ

Fair questions.

What is a managed agent?

An AI agent whose configuration — prompt, model preset, skills, tools, sandbox policy, and limits — is published as an immutable version, and whose runs are executed durably by the platform. You define what the agent is; OAO takes responsibility for keeping its work alive, inspectable, and reproducible.

What actually happens when a worker crashes mid-run?

Nothing is lost. The run is a durable PostgreSQL obligation held under a lease. When the crashed worker's lease expires, another worker acquires it with a higher fencing token and resumes the run. The stale worker can never commit anything afterwards — fencing tokens make sure of it.

Which model providers does OAO support?

Today: OpenRouter, Anthropic, Grok (xAI), and OpenAI — with OpenRouter unlocking 100+ further models, including open-source ones, and more direct providers on the way. Mix them freely: different agents (or a coordinator and its children) can each run on a different provider. You bring your own keys; they're encrypted write-only, and agents only ever see approved, named model presets — never a raw model ID or credential — so switching providers is a config change, not a migration.

Can agents call tools inside my own systems?

Yes — that's the caller-owned tool protocol. Your application claims a pending tool request under a lease, executes it in your environment with your credentials, and submits one immutable result that's validated against the schema pinned in the agent version. OAO never needs access to your internal systems.

Where does my data live?

Wherever you decide. Self-hosted, OAO runs entirely on your infrastructure — your PostgreSQL, your object storage — and nothing phones home, so your data stays wherever you run it.

Is OAO open source?

It will be. The platform lives at github.com/vectrix-ai/oao and is being prepared for an open-source release under the Apache-2.0 license. It builds on Flue, the durable runtime at its backbone. Join the waitlist to hear the moment it's ready.

When can I use it?

OAO is in active development. The waitlist is the way in: a heads-up the moment the open-source release lands, so you can run it on your own infrastructure from day one.

Define the agent.
OAO runs the rest.

Be first to know when the open-source release lands.

You're on the list — talk soon.

A heads-up the moment the open-source release lands. No spam, ever.

OPEN · DURABLE · PORTABLE