Architecture

How the whole thing works.

Open Swarm is layered on purpose: surfaces and apps on top, a ticket-and-workflow engine in the middle, a controller and mesh routing work to bot nodes, connectors brokering outside access, and isolated data underneath. Each layer has one job.

System overview

Eight layers, clear ownership.

Nothing in the stack reaches across boundaries it does not own. Apps never touch another tenant's data; bot nodes never decide policy; connectors never run without a broker. That separation is what lets the same runtime safely host very different applications.

SurfacesHow people reach the swarm
Jarvis assistantCockpitPer-app UIsVoice & textTV / device pairing
ApplicationsLoaded from manifests, not forks
Intelligent OperationsIntelligent WorkforceTradingWorld IntelligenceLittle MonstersPresentation StudioTravel · Shop · Media
Work engineTickets, queues, workflows
Ticket queuesWorkflow generatorBuild pipelineReview gatesHuman approvals
Controller & meshRoutes work, tracks state
Redis StreamsEnvelope routingRegistry & heartbeatsCost ledger
Bot nodesOwn LLM execution
Harness per botProvider per botModel per botPersona quality gatesA2A remote workers
Tools & connectorsBrokered access to the outside
Connector runtime1,300+ marketplace specsPer-user token brokerTool auth: auto / ask / off
Data & isolationWhere boundaries are enforced
Postgres row-level securityPer-user task storageTicketed data brokerChromaDB RAG
DeploymentRuns close to the work
WindowsDocker ComposeKubernetesLocal modelsRemote nodes

How work flows through it

Work flows down from a surface to the controller, fans out to bot nodes, reaches outside systems only through brokered connectors, and lands in isolated data. Results flow back up the same path.

The work engine

A ticket becomes coordinated work.

Every unit of work is a ticket on a queue. The controller routes; bot nodes execute; personas enforce role behavior; the mesh carries handoffs. Cost, tokens, and review state are captured once, centrally.

Lanes scale independently across local, Kubernetes, or remote nodes — each agent consumes its own stream.

Per-bot configuration

Every bot can choose its harness, provider, model, and tools.

Open Swarm does not force one provider or one runtime. Provider and model are runtime configuration, not architecture decisions baked into code, while every bot keeps the same bot-to-bot communication layer.

Harness per botA tutor, planner, incident responder, or build worker runs through the harness that fits its job.
Provider and model per botSwap providers or models per bot without touching the workflow.
Shared communicationA2A and workflow messaging stay identical even when harnesses differ.
Tool policy per botTool auth is configured per bot in auto, ask, or off modes.
Screenshot of per-bot configuration showing harness, API provider, model, authentication, and per-tool auth modes
Real per-bot configuration: a bot wired to a specific harness, provider, model, selector skills, and per-tool auth modes.
Isolation & tenancy

User, single-tenant, and multi-tenant boundaries — enforced in the database.

Isolation is not a convention in application code; it is enforced where it is hardest to bypass. The application runs as a least-privilege database role, and Postgres row-level security scopes every read and write to its owner.

Database

Row-level security on every table

The app no longer runs as a superuser. A dedicated least-privilege role owns the tables and FORCE row-level security scopes each row to its tenant and user, so one account cannot read another's data even with a crafted query.

Storage

Per-user task storage

Personal task data is partitioned per user, so an individual's history, files, and state stay private to them inside a shared deployment.

Access

Ticketed data broker

Agents do not query personal data directly. A broker grants scoped, ticketed access to a personal data schema, so every read of someone's information is mediated and attributable.

Single-tenant

Run it alone

The whole platform can deploy as an isolated single-tenant instance — one organization, its own data, its own keys — using the same code that powers the multi-tenant build.

Multi-tenant

Many tenants, one runtime

Tenant-aware apps, OIDC/Keycloak identity, and connector token boundaries let multiple organizations share infrastructure without sharing data.

Identity

OIDC / Keycloak

Auth-gated routes and standard identity patterns sit in front of the cockpit and applications, with sign-in scoping what each user and tenant can see.

Security posture

A Security Center that watches the platform itself.

Security is treated as ongoing work, not a one-time checkbox. A Security Center application scans the running platform for exposed secrets, open routes, and dependency risk, watches runtime and ledger activity, and routes findings to a security-analyst bot that triages them into tickets.

Tool execution is moving to fail-closed: metacharacter validation on inputs and an opt-in strict mode so an agent cannot quietly shell out beyond its policy.

Posture scanning Secret detection Runtime & ledger watch Triage to tickets Fail-closed tool exec Per-agent tool auth
Connectors

1,300+ connectors, imported on demand.

The useful pattern is not a bot with generic internet access; it is a bot with the right approved data, the right tool policy, and the right review point. A shared connector runtime makes any service look the same to the swarm, and a marketplace imports public API specs into that runtime when you need them.

1,300+public API specs importable from the marketplace
1shared connector runtime and conformance spec
Per-usertoken brokering, so credentials stay scoped
Livesigned connectors for finance, commerce, travel, and media
Runtime

One client, every service

A shared ConnectorClient gives every connector the same shape — auth, retries, conformance — so apps integrate against a contract instead of bespoke glue per vendor.

Marketplace

Import on demand

Over thirteen hundred public OpenAPI specs are staged for import, with dynamic tool loading so a connector becomes callable tools for a bot only when it is needed.

Broker

Scoped per user

A token broker holds credentials per user and hands out scoped access, so a connector reads or acts only on data its owner approved.

Signed & live

Real integrations today

Beyond the importable catalog, signed connectors are live for commerce, travel, media, and finance — used by the trading, shopping, and travel applications.

Ops & SecOps

Operational reach

Operations and security connectors bring monitoring, incident, and infrastructure signals into the same governed runtime as everything else.

Governance

Tool auth per agent

Every tool a connector exposes is governed per agent in auto, ask, or off modes, with cost recorded per call in the central ledger.

The 1,300+ figure counts public API specifications staged for import into the connector runtime; not every spec is wired and tested as a live integration. Live, signed connectors are a curated subset.

Workflow generator

Describe the work. Get a runnable queue.

A Workflow Studio turns a described outcome into a runnable workflow published as a ticket queue — scoped to a person, a tenant, or made public. Three pipeline shapes are first-class.

Build workflow

Ticket intake routes through planning, architecture, implementation, testing, review, and delivery, with a dedicated bot for each role.

Ticket workflow

Any operational request — incident RCA, support triage, a research task — flows through queues, gates, and approvals with cost and state tracked centrally.

Video workflow

A post-event pipeline turns data into a deck, the deck into narrated video via the Vids operator, and publishes — used for the daily trade recap.

Bot Forge

An interview-driven packer emits a persona plus a swarm app manifest and injects a focused new bot into the running swarm.

Want the deeper write-ups?

The blog breaks down individual pieces — tenant isolation with Postgres RLS, how the trading swarm justifies a trade, and how the connector marketplace loads tools on demand.