AgentOS is built on FastAPI, which means you can easily integrate your existing FastAPI applications or add custom routes and routers to extend your agent’s capabilities.

Quick Start

The simplest way to bring your own FastAPI app is to pass it to the AgentOS constructor:
from fastapi import FastAPI
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.os import AgentOS

# Create your custom FastAPI app
app = FastAPI(title="My Custom App")

# Add your custom routes
@app.get("/status")
async def status_check():
    return {"status": "healthy"}

# Pass your app to AgentOS
agent_os = AgentOS(
    agents=[Agent(id="basic-agent", model=OpenAIChat(id="gpt-5-mini"))],
    fastapi_app=app  # Your custom FastAPI app
)

# Get the combined app with both AgentOS and your routes
app = agent_os.get_app()

Adding Custom Routers

For better organization, use FastAPI routers to group related endpoints:
from fastapi import FastAPI, APIRouter
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.os import AgentOS

# Create a custom router
api_router = APIRouter(prefix="/api/v1", tags=["custom"])

@api_router.get("/users")
async def get_users():
    return [{"id": 1, "name": "John Doe"}]

@api_router.post("/users")
async def create_user(user_data: dict):
    return {"id": 2, "message": "User created"}

# Create FastAPI app and include your router
app = FastAPI()
app.include_router(api_router)

# Integrate with AgentOS
agent_os = AgentOS(
    agents=[Agent(id="basic-agent", model=OpenAIChat(id="gpt-5-mini"))],
    fastapi_app=app
)

app = agent_os.get_app()

Middleware and Dependencies

You can add middleware and dependencies to your custom FastAPI app:
from fastapi import FastAPI, Depends, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.security import HTTPBearer

app = FastAPI()

# Add CORS middleware
app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://yourdomain.com"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# Security dependency
security = HTTPBearer()

async def verify_token(token: str = Depends(security)):
    if token.credentials != "your-secret-token":
        raise HTTPException(status_code=401, detail="Invalid token")
    return token

# Protected route
@app.get("/protected", dependencies=[Depends(verify_token)])
async def protected_endpoint():
    return {"message": "Access granted"}

# Integrate with AgentOS
agent_os = AgentOS(
    agents=[Agent(id="basic-agent", model=OpenAIChat(id="gpt-5-mini"))], 
    fastapi_app=app
)

app = agent_os.get_app()

Access AgentOS Routes

You can programmatically access and inspect the routes added by AgentOS:
agent_os = AgentOS(agents=[agent])
app = agent_os.get_app()

# Get all routes
routes = agent_os.get_routes()

for route in routes:
    print(f"Route: {route.path}")
    if hasattr(route, 'methods'):
        print(f"Methods: {route.methods}")

Running with FastAPI CLI

AgentOS applications are compatible with the FastAPI CLI for development. First, install the FastAPI CLI:
Install FastAPI CLI
pip install "fastapi[standard]"
Then run the app:
fastapi run your_app.py

Running in Production

For production deployments, you can use any ASGI server:
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4

Developer Resources