Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agno-v2-fix-deploy-docs-restructure.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Manage

TaskCommand
Deploy updates./scripts/railway/redeploy.sh
View logsrailway logs --service agent-os
Open dashboardrailway open
Sync env variables./scripts/railway/env-sync.sh
Set single variablerailway variables set KEY=value
Stop servicerailway down --service agent-os
Stop databaserailway down --service pgvector
Scale replicasEdit railway.json: {"deploy": {"numReplicas": 2}}

Customize

Create agents/my_agent.py:
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from db import get_postgres_db

my_agent = Agent(
    id="my-agent",
    name="My Agent",
    model=OpenAIResponses(id="gpt-5.5"),
    db=get_postgres_db(),
    instructions="You are a helpful assistant.",
)
Register in app/main.py:
from agents.my_agent import my_agent

agent_os = AgentOS(
    name="AgentOS",
    agents=[web_search, code_search, my_agent],
)
Redeploy: ./scripts/railway/redeploy.sh
Agno includes 100+ tool integrations. See the full list.
from agno.tools.slack import SlackTools
from agno.tools.google_calendar import GoogleCalendarTools

my_agent = Agent(
    tools=[
        SlackTools(),
        GoogleCalendarTools(),
    ],
)
Add your API key to .env.production and update your agent:
from agno.models.anthropic import Claude

my_agent = Agent(
    model=Claude(id="claude-sonnet-4-5"),
)
Add anthropic to pyproject.toml and redeploy:
./scripts/generate_requirements.sh upgrade
./scripts/railway/env-sync.sh
./scripts/railway/redeploy.sh
  1. Edit pyproject.toml
  2. Regenerate requirements: ./scripts/generate_requirements.sh upgrade
  3. Redeploy: ./scripts/railway/redeploy.sh
Set both variables in .env.production:
SLACK_BOT_TOKEN=xoxb-...
SLACK_SIGNING_SECRET=...
Sync and redeploy:
./scripts/railway/env-sync.sh
The interface activates automatically. See Slack setup for creating the Slack app.

Local Development

Run without Docker for faster iteration:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Set up environment
./scripts/venv_setup.sh
source .venv/bin/activate

# Start PostgreSQL (required)
docker compose up -d agentos-db

# Run AgentOS
python -m app.main

Environment Variables

VariableRequiredDefaultDescription
OPENAI_API_KEYYesOpenAI API key
RUNTIME_ENVNoprddev enables hot-reload and disables JWT
JWT_VERIFICATION_KEYProductionPublic key from os.agno.com
AGENTOS_URLNohttp://127.0.0.1:8000Scheduler base URL
SLACK_BOT_TOKENNoEnable Slack interface
SLACK_SIGNING_SECRETNoEnable Slack interface
PARALLEL_API_KEYNoParallel SDK key for WebSearch
PORTNo8000API server port
DB_HOSTNolocalhostDatabase host
DB_PORTNo5432Database port
DB_USERNoaiDatabase user
DB_PASSNoaiDatabase password
DB_DATABASENoaiDatabase name

Troubleshooting

Install: brew install railway (Mac) or npm install -g @railway/cli
Expected. Get your verification key from os.agno.com, add to .env.production, then run ./scripts/railway/env-sync.sh.
PostgreSQL takes ~30s to start. Check: railway logs --service pgvector
Container is still starting. Wait 1-2 min. Check: railway logs --service agent-os