Skip to main content
Shipping an agent needs more than a /run endpoint. A live agent needs an API that can:
  • Run agents in streaming mode and as background jobs
  • Manage the sessions, memory, and learnings your agents accumulate
  • Inspect runs, traces, and metrics
  • Schedule recurring work
  • Gate sensitive tool calls on human approval
  • Resume paused runs once that approval comes back
AgentOS registers run routes for your agents, teams, and workflows. Database-backed routes and opt-in features such as scheduling, tracing, and MCP depend on the AgentOS configuration. Browse the live API at /docs or fetch the spec from /openapi.json.

Interfaces

Agents need to be reachable over more than one interface. Define an agent once and AgentOS can expose it over any interface you opt into. REST and SSE are on by default; add an MCP server, A2A, or a Slack interface as needed. The agent code stays the same; only the interface layer changes.

The surface area

How a request looks

Run endpoints accept multipart/form-data so a single call can carry text, files, and media. Agents, teams, and workflows share this request pattern; each response identifies the component type that ran. An agent request looks like this:
Pass stream=true for Server-Sent Events. Pass background=true to run async and poll for completion.

Adding your own routes

AgentOS is built on FastAPI. Register additional routes for webhooks, custom dashboards, integrations:
The agent is a regular Python object. Call agent.run(...) or await agent.arun(...) from anywhere.

Auth

When authorization=True, central REST routes require a valid JWT in the Authorization: Bearer ... header except for the public routes (/, /health, /info, and API docs routes such as /docs and /openapi.json). AgentOS validates the token, extracts claims, and applies RBAC scopes before agent code runs. Self-authenticating interfaces such as Slack, Telegram, and WhatsApp verify requests through their own interface middleware. See Security & Auth for the details.