Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 100 additions & 59 deletions agent-os/introduction.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
---
title: "What is AgentOS?"
sidebarTitle: "Introduction"
description: "The runtime and control plane for multi-agent systems."
description: "The runtime, visual builder and control plane for multi-agent systems."
---

**AgentOS turns your agents into a production API you can deploy anywhere.** It gives you a pre-built backend for your AI product, so all you need to do is add your agent logic, build your frontend and your product is live.
**AgentOS turns your agents into a production API ready to deploy anywhere.**
All you need to do is add your agent logic, build your frontend and your product is live.

You bring the agents and AgentOS turns it into a product:
- 50+ API endpoints with SSE-compatible streaming. Ready for production on day one.
- Sessions, memory, knowledge stored in your database. Your data stays in your system.
- Request-level isolation. No state bleed between users, agents and sessions.
- JWT-based RBAC with hierarchical scopes. Enterprise-ready from day one.
- Tracing built-in, stored in your database. No third-party egress. No vendor lock-in.
- Guardrails, human in the loop, learning machines. The full Agno framework.
AgentOS comprises of two parts:

1. **Runtime**: To run your Agno agents built using the Agno SDK
2. **User interface**: Visual agent builder and [control plane](/agent-os/control-plane) that lets you build, monitor, debug and deploy your agents

## Create AgentOS

<Tabs>
<Tab title="Basic AgentOS">

Here's an example of an AgentOS serving an Agent with memory, state, and MCP tools:
This is a basic AgentOS instance serving an Agent with memory, state, and MCP tools. You can monitor this agent after connecting the AgentOS to the UI.

```python agno_agent.py
from agno.os import AgentOS
Expand All @@ -37,34 +40,89 @@
agent_os.serve(app="agno_agent:app", reload=True)
```

<Check>
</Tab>
<Tab title="AgentOS with Builder Components">
You can create an AgentOS instance with pre-registered components (agents, teams, workflows, tools, database, etc.).
When you connect this AgentOS to the UI, you view and use these components in the visual editor as draggable nodes for complex system design.

AgentOS runs on FastAPI. Add middleware, custom routes, background tasks, or any FastAPI feature without extra configuration.
```python agent_os_registry.py
from agno.agent.agent import Agent

Check warning on line 49 in agent-os/introduction.mdx

View check run for this annotation

Mintlify / Mintlify Validation (agno-v2) - vale-spellcheck

agent-os/introduction.mdx#L49

'agent' is repeated!
from agno.db.postgres import PostgresDb
from agno.models.anthropic import Claude
from agno.models.openai import OpenAIChat
from agno.os import AgentOS
from agno.registry import Registry
from agno.tools.calculator import CalculatorTools
from agno.tools.duckduckgo import DuckDuckGoTools

</Check>
db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", id="postgres_db")

## Control Plane

AgentOS comes with a built-in [control plane](https://os.agno.com) that connects directly to your runtime from your browser. Monitor sessions. Debug with full traces. Manage users and permissions.
def sample_tool():
return "Hello, world!"

<Frame>
<video
autoPlay
muted
loop
playsInline
controls
style={{ borderRadius: "0.5rem", width: "100%", height: "auto" }}
>
<source src="/videos/agentos-agent-chat.mp4" type="video/mp4" />
</video>
</Frame>

registry = Registry(
name="Agno Registry",
tools=[DuckDuckGoTools(), sample_tool, CalculatorTools()],
models=[
OpenAIChat(id="gpt-5-mini"),
OpenAIChat(id="gpt-5"),
Claude(id="claude-sonnet-4-5"),
],
dbs=[db],
)

agent = Agent(
id="registry-agent",
model=Claude(id="claude-sonnet-4-5"),
db=db,
)

agent_os = AgentOS(
agents=[agent],
id="registry-agent-os",
registry=registry,
db=db,
)

app = agent_os.get_app()

if __name__ == "__main__":
agent_os.serve(app="agent_os_registry:app", reload=True)
```

</Tab>
</Tabs>

## Architecture

Your AgentOS runs as a container in your cloud. The AgentOS UI is the visual builder and control plane that
connects directly from your browser.

No proxy servers, no data relay.

Fully Compatible with the FastAPI Ecosystem. Deploy custom routes, background workers, and middleware
with zero additional configuration.

<img
className="block dark:hidden"
src="/images/agent-os/agentos-architecture-light.png"
alt="AgentOS Architecture"
/>

<img
className="hidden dark:block"
src="/images/agent-os/agentos-architecture-dark.png"
alt="AgentOS Architecture"
/>

## Private by Design

Most AI tooling stores your data on their servers. You pay retention costs, deal with egress fees, and depend on their security.

AgentOS runs entirely in your infrastructure:

- **Your database**: Sessions, memory, knowledge, traces. All stored where you control it.
- **Zero transmission**: No conversations, logs, or metrics sent to Agno.
- **Nothing stored on our end**: The control plane reads from your database, displays in your browser, stores nothing. When you close the tab, there's no trace of your data anywhere but your own systems.
Expand All @@ -79,51 +137,34 @@
/>
</Frame>

## Architecture
## AgentOS Features and Benefits

Your AgentOS runs as a container in your cloud. The control plane connects directly from your browser. No proxy servers, no data relay.

<img
className="block dark:hidden"
src="/images/agent-os/agentos-architecture-light.png"
alt="AgentOS Architecture"
/>
You bring in your agents and AgentOS turns them into a production-ready agentic system:

<img
className="hidden dark:block"
src="/images/agent-os/agentos-architecture-dark.png"
alt="AgentOS Architecture"
/>
- 50+ API endpoints with SSE-compatible streaming. Ready for production on day one.
- Sessions, memory, knowledge stored in your database. Your data stays in your system.
- Request-level isolation. No state bleed between users, agents and sessions.
- JWT-based RBAC with hierarchical scopes. Enterprise-ready from day one.
- Tracing built-in, stored in your database. No third-party egress. No vendor lock-in.
- Guardrails, human in the loop, learning machines. The full Agno framework.

## Get Started
## Next Steps

<CardGroup cols={2}>
<Card
title="Run Your First AgentOS"
icon="plus"
href="/agent-os/run-your-os"
>
<Card title="Run Your First AgentOS" icon="plus" href="/agent-os/run-your-os">
Create and run your first AgentOS
</Card>
<Card
title="Connect Your AgentOS"
title="Connect AgentOS to UI"
icon="link"
href="/agent-os/connect-your-os"
>
Connect your AgentOS to the UI
Connect your AgentOS to the Control Plane and Builder UI
</Card>
<Card
title="Control Plane"
icon="desktop"
href="/agent-os/control-plane"
>
<Card title="Control Plane" icon="desktop" href="/agent-os/control-plane">
Monitor and manage your AgentOS
</Card>
<Card
title="Overview"
icon="book"
href="/agent-os/overview"
>
<Card title="Learn More" icon="book" href="/agent-os/overview">
Learn more about AgentOS
</Card>
</CardGroup>
</CardGroup>
110 changes: 81 additions & 29 deletions agent-os/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
---
title: "Overview"
description: "The production runtime and control plane for your agentic systems."
description: "Create and configure your AgentOS instance"
---

AgentOS turns your agents into a production API. A minimal AgentOS application looks like this:
AgentOS turns your Agno agents into a production API.

A minimal AgentOS application looks like this:

```python my_os.py
from agno.os import AgentOS
Expand All @@ -22,27 +24,77 @@ if __name__ == "__main__":
agent_os.serve(app="my_os:app", reload=True)
```

Next, [run it](/agent-os/run-your-os) and then [connect it to AgentOS UI](/agent-os/connect-your-os).

## AgentOS UI

AgentOS UI comprises of:

1. **Studio**: Visual agent builder to design your agentic systems.
2. **Control Plane**: To monitor, debug and manage your Agno agents.

Create agents programmatically via the Agno SDK/APIs or the visual builder.

The control plane displays runtime agents and workflows. Use the builder canvas to visually design systems by dragging and dropping components. To make components visible in the builder UI, register them via the `AgentOS` constructor.

```python agent_os_registry.py
from agno.db.postgres import PostgresDb
from agno.models.openai import OpenAIChat
from agno.models.anthropic import Claude
from agno.os import AgentOS
from agno.registry import Registry
from agno.tools.calculator import CalculatorTools
from agno.tools.websearch import WebSearchTools
from agno.vectordb.pgvector import PgVector
from pydantic import BaseModel

class InputSchema(BaseModel):
input: str
description: str

def custom_evaluator(input: str) -> bool:
return "urgent" in input.lower()

db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", id="postgres_db")

registry = Registry(
name="My Registry",
tools=[CalculatorTools(), WebSearchTools()],
models=[OpenAIChat(id="gpt-5-mini"), Claude(id="claude-sonnet-4-5")],
dbs=[db],
vector_dbs=[PgVector(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai", table_name="embeddings")],
schemas=[InputSchema],
functions=[custom_evaluator],
)

agent_os = AgentOS(id="my-app", registry=registry, db=db)
app = agent_os.get_app()

if __name__ == "__main__":
agent_os.serve(app="agent_os_registry:app", reload=True)
```

## Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `name` | `str` | `None` | AgentOS name |
| `agents` | `List[Agent]` | `None` | List of agents |
| `teams` | `List[Team]` | `None` | List of teams |
| `workflows` | `List[Workflow]` | `None` | List of workflows |
| `db` | `BaseDb` | `None` | Database to use for the AgentOS |
| `tracing` | `bool` | `False` | Enable tracing to provided database |
| `knowledge` | `List[Knowledge]` | `None` | List of knowledge instances |
| `interfaces` | `List[BaseInterface]` | `None` | List of interfaces ([docs](/agent-os/interfaces)) |
| `config` | `str` or `AgentOSConfig` | `None` | Configuration file path or config instance ([docs](/agent-os/config)) |
| `base_app` | `FastAPI` | `None` | Custom FastAPI app ([docs](/agent-os/custom-fastapi/overview)) |
| `lifespan` | `Any` | `None` | Lifespan context manager ([docs](/agent-os/lifespan)) |
| `authorization` | `bool` | `False` | Enable RBAC ([docs](/agent-os/security/rbac)) |
| `authorization_config` | `AuthorizationConfig` | `None` | JWT verification config |
| `enable_mcp_server` | `bool` | `False` | Turn AgentOS into an MCP server ([docs](/agent-os/mcp/mcp)) |
| `cors_allowed_origins` | `List[str]` | `None` | Allowed CORS origins |
| `auto_provision_dbs` | `bool` | `True` | Auto-provision databases |
| `run_hooks_in_background` | `bool` | `False` | Run hooks as background tasks |
| Parameter | Type | Default | Description |
| ------------------------- | ------------------------ | ------- | --------------------------------------------------------------------- |
| `name` | `str` | `None` | AgentOS name |
| `agents` | `List[Agent]` | `None` | List of agents |
| `teams` | `List[Team]` | `None` | List of teams |
| `workflows` | `List[Workflow]` | `None` | List of workflows |
| `db` | `BaseDb` | `None` | Database to use for the AgentOS |
| `tracing` | `bool` | `False` | Enable tracing to provided database |
| `knowledge` | `List[Knowledge]` | `None` | List of knowledge instances |
| `interfaces` | `List[BaseInterface]` | `None` | List of interfaces ([docs](/agent-os/interfaces)) |
| `config` | `str` or `AgentOSConfig` | `None` | Configuration file path or config instance ([docs](/agent-os/config)) |
| `base_app` | `FastAPI` | `None` | Custom FastAPI app ([docs](/agent-os/custom-fastapi/overview)) |
| `lifespan` | `Any` | `None` | Lifespan context manager ([docs](/agent-os/lifespan)) |
| `authorization` | `bool` | `False` | Enable RBAC ([docs](/agent-os/security/rbac)) |
| `authorization_config` | `AuthorizationConfig` | `None` | JWT verification config |
| `enable_mcp_server` | `bool` | `False` | Turn AgentOS into an MCP server ([docs](/agent-os/mcp/mcp)) |
| `cors_allowed_origins` | `List[str]` | `None` | Allowed CORS origins |
| `auto_provision_dbs` | `bool` | `True` | Auto-provision databases |
| `run_hooks_in_background` | `bool` | `False` | Run hooks as background tasks |

See the [AgentOS class reference](/reference/agent-os/agent-os) for complete reference.

Expand All @@ -56,13 +108,13 @@ Returns the configured FastAPI application.

Starts the AgentOS server.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `app` | `str` or `FastAPI` | Required | FastAPI app instance or module path |
| `host` | `str` | `localhost` | Host to bind |
| `port` | `int` | `7777` | Port to bind |
| `workers` | `int` | `None` | Number of workers |
| `reload` | `bool` | `False` | Enable auto-reload |
| Parameter | Type | Default | Description |
| --------- | ------------------ | ----------- | ----------------------------------- |
| `app` | `str` or `FastAPI` | Required | FastAPI app instance or module path |
| `host` | `str` | `localhost` | Host to bind |
| `port` | `int` | `7777` | Port to bind |
| `workers` | `int` | `None` | Number of workers |
| `reload` | `bool` | `False` | Enable auto-reload |

### `resync()`

Expand All @@ -80,4 +132,4 @@ agent_os = AgentOS(
)
```

See [Configuration](/agent-os/config) for full details.
See [Configuration](/agent-os/config) for full details.
Loading