agno Documentation

Build, run, and manage agent platforms.

41,682 stars Python Python 1 file ยท ~1,640 tokens #agents#ai#ai-agents#developer-tools#python
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy agno on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name agno -p 5001:5001 --restart always us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
Configured Services & Ports
โš™๏ธ toolbox
image: us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
๐Ÿ”Œ Ports: 5001:5000
โš™๏ธ db
image: postgres:16
๐Ÿ”Œ Ports: 5432:5432
docker-compose.yml
yaml (docker-compose.yml)
services:
  toolbox:
    # Pin to specific version for production use
    image: us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
    hostname: toolbox
    platform: linux/amd64
    ports:
      - "5001:5000"
    volumes:
      - ./config:/config
    command: ["toolbox", "--tools-file", "/config/tools.yaml", "--address", "0.0.0.0"]
    depends_on:
      db:
        condition: service_healthy
    networks:
      - tool-network

  db:
    # Pin to specific version for production use
    image: postgres:16
    hostname: db
    environment:
      POSTGRES_USER: toolbox_user
      POSTGRES_PASSWORD: my-password
      POSTGRES_DB: toolbox_db
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
      # This file will bootstrap the schema and data
      - ./config/init.sql:/docker-entrypoint-initdb.d/init.sql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U toolbox_user -d toolbox_db"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - tool-network

networks:
  tool-network:
    driver: bridge

volumes:
  postgres_data:

1. Project Overview & Quickstart (agno-agi/agno)

Introduction

Agno is a framework and runtime for agent platforms. Build agents, run them as a service, manage your platform using a web UI.

  • Build your agent platform using the Agno SDK.
  • Run your agent platform using the AgentOS runtime.
  • Manage everything using the AgentOS UI.

Agno allows you to own your agent stack. Maintain control of your data, memory, and security posture (JWT-based RBAC), and turn your agent platform into a learning loop with simulations and usage data.

Get started

Hand this prompt to your coding agent (Claude Code, Cursor, Codex):

text
Help me set up my agent platform.

Clone https://github.com/agno-agi/agentos-railway into a folder called
agent-platform, cd in, read the README, and follow the get started guide.

Your coding agent will set up your agent platform and run it locally using Docker, giving you a REST API for serving your agents, a Postgres database for storing your data and traces, an MCP server, and a control plane.

Deploying somewhere else? Use the same prompt but point it to a different repo. The starter templates are identical except for the deploy scripts: swap agentos-railway for agentos-docker, agentos-aws, agentos-gcp, agentos-azure, agentos-fly, agentos-render, agentos-modal, or agentos-helm.

Prefer to code by hand?

Features

  • Production API. 50+ endpoints with SSE and websockets to build a product on top.
  • Storage. Store sessions, memory, knowledge, and traces in your own database.
  • 100+ integrations. Connect to GitHub, Slack, Postgres, and more using pre-built toolkits.
  • Context Providers. Access live data from Slack, Drive, wikis, MCP, and custom sources.
  • Human approval. Pause runs for user confirmation. Block tools that require admin approval.
  • Observability. Monitor with OpenTelemetry tracing, run history, and audit logs.
  • Security. Get JWT-based RBAC and multi-user, multi-tenant isolation out of the box.
  • Interfaces. Expose your agents via Slack, Telegram, WhatsApp, Discord, AG-UI, A2A.
  • Scheduling. Cron-based scheduling and background jobs with no external infrastructure.
  • Deploy anywhere. Run on any cloud platform that runs containers. Docker, Railway, AWS, GCP.

Use Agno with your coding agent

Two options:

  1. Recommended: Add Agno docs as an MCP server. Add docs.agno.com/mcp to your favourite coding agent.
  2. Add Agno docs as an indexed source. In Cursor: Settings โ†’ Indexing & Docs โ†’ Add https://docs.agno.com/llms-full.txt. Also works in VSCode, Windsurf, and similar tools.

Read the full guide here.

Community

  • X: follow for releases and demos
  • Newsletter: monthly updates on what's shipping

Contributing

See the contributing guide.

License

Agno is distributed under the Apache-2.0 license.

Telemetry

Agno sends a telemetry event per agent run so we know which model providers to prioritize. Prompts, messages, and outputs are never sent. Disable by setting AGNO_TELEMETRY=false.

โ†‘ Back to top

2. Official Technical Reference & Guides (agno-agi/docs)

Agno Docs

Agno documentation site built with Mintlify.

Quickstart

  1. Install the Mintlify CLI: npm i mint
  2. From the repo root (the folder with docs.json), run mint dev
  3. Open the local site at http://localhost:3000

Contributing

We welcome contributions to improve the Agno documentation! Please read our CONTRIBUTING.md for detailed guidelines on:

  • How to set up your development environment
  • Pull request and branch naming conventions
  • Documentation structure and writing guidelines
  • Testing and validation procedures

Development

Install the Mintlify CLI to run the documentation site locally:

text
npm i mint

Run the following command at the root of your documentation (where docs.json is)

text
mint dev

Publishing Changes

Publish changes by pushing to the main branch via a PR.

text
git add .
git commit -m "update message"
git push

How to generate a new API reference

  1. In your local agno repo, run the AgentOS cookbook containing all supported interfaces, using the latest version of Agno.

    bash
    python cookbook/05_agent_os/interfaces/all_interfaces.py
  2. Download the latest API reference files:

    bash
    curl -o reference-api/openapi.json http://localhost:7777/openapi.json

    Using swagger-cli to create openapi.yaml counterpart:

    bash
    swagger-cli bundle reference-api/openapi.json --outfile reference-api/openapi.yaml --type yaml
  3. Delete all files in the reference-api/schema/ folder (the auto-generated files)

  4. Run npx @mintlify/scraping@latest openapi-file reference-api/openapi.json -o reference-api/schema to generate the new API reference

  5. Update the docs.json file to include any new pages.

  6. Run mint dev to see the changes

Troubleshooting

  • Mintlify dev isn't running - Run mint update it'll update dependencies.
  • Page loads as a 404 - Make sure you are running in a folder with docs.json

AI Powered Development

First, symlink the agno repo (gitignored):

text
ln -s ~/code/agno agno

For agno engineers, also symlink the specs repo:

text
ln -s ~/code/specs specs