diff --git a/agent-os/introduction.mdx b/agent-os/introduction.mdx index ac4e9ec5..1394229d 100644 --- a/agent-os/introduction.mdx +++ b/agent-os/introduction.mdx @@ -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 + + + -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 @@ -37,34 +40,89 @@ if __name__ == "__main__": agent_os.serve(app="agno_agent:app", reload=True) ``` - + + +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 +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 - +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!" - - - + +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) +``` + + + + +## 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. + +AgentOS Architecture + +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. @@ -79,51 +137,34 @@ See [AgentOS Security](/agent-os/security) for more details. /> -## 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. - -AgentOS Architecture +You bring in your agents and AgentOS turns them into a production-ready agentic system: -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 - + Create and run your first AgentOS - Connect your AgentOS to the UI + Connect your AgentOS to the Control Plane and Builder UI - + Monitor and manage your AgentOS - + Learn more about AgentOS - \ No newline at end of file + diff --git a/agent-os/overview.mdx b/agent-os/overview.mdx index 39a035c0..4dcdeb0c 100644 --- a/agent-os/overview.mdx +++ b/agent-os/overview.mdx @@ -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 @@ -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. @@ -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()` @@ -80,4 +132,4 @@ agent_os = AgentOS( ) ``` -See [Configuration](/agent-os/config) for full details. \ No newline at end of file +See [Configuration](/agent-os/config) for full details. diff --git a/agent-os/run-your-os.mdx b/agent-os/run-your-os.mdx index 59a981ce..d76be8b5 100644 --- a/agent-os/run-your-os.mdx +++ b/agent-os/run-your-os.mdx @@ -4,6 +4,7 @@ description: "Run a local AgentOS in 20 lines of code." --- Save the following code to `agno_agent.py`: + ```python agno_agent.py lines from agno.os import AgentOS from agno.agent import Agent @@ -47,22 +48,16 @@ uv venv --python 3.12 - -```bash -uv pip install -U agno anthropic 'fastapi[standard]' sqlalchemy -``` - + + ```bash uv pip install -U agno anthropic 'fastapi[standard]' sqlalchemy ``` + - - -```bash Mac -export ANTHROPIC_API_KEY=sk-*** -``` -```bash Windows -setx ANTHROPIC_API_KEY sk-*** -``` - - + + + ```bash Mac export ANTHROPIC_API_KEY=sk-*** ``` ```bash Windows setx + ANTHROPIC_API_KEY sk-*** ``` + + ```bash @@ -73,8 +68,8 @@ fastapi dev agno_agent.py Your AgentOS is now running at `http://localhost:8000`. -| Endpoint | Description | -|----------|-------------| -| `http://localhost:8000` | Connect to the control plane | -| `http://localhost:8000/docs` | Interactive API documentation | -| `http://localhost:8000/config` | View AgentOS configuration | +| Endpoint | Description | +| ------------------------------ | ----------------------------- | +| `http://localhost:8000` | Connect to the control plane | +| `http://localhost:8000/docs` | Interactive API documentation | +| `http://localhost:8000/config` | View AgentOS configuration | diff --git a/docs.json b/docs.json index 0dbc918f..06561e1c 100644 --- a/docs.json +++ b/docs.json @@ -2758,9 +2758,14 @@ "group": "Get Started", "pages": [ "agent-os/introduction", - "agent-os/run-your-os", - "agent-os/connect-your-os", - "agent-os/control-plane", + { + "group": "Usage", + "pages": [ + "agent-os/run-your-os", + "agent-os/connect-your-os", + "agent-os/control-plane" + ] + }, { "group": "Security & Authorization", "pages": [ @@ -2771,7 +2776,7 @@ ] }, { - "group": "AgentOS", + "group": "Basic", "pages": [ "agent-os/overview", "agent-os/using-the-api", @@ -2875,7 +2880,7 @@ ] }, { - "group": "Example Usage", + "group": "Advanced", "pages": [ "agent-os/usage/demo", "agent-os/usage/extra-configuration",