The Problem
Building an agent platform means stitching together agents, memory, storage, tools, and a runtime API. Most frameworks give you the agent, then leave the rest—sessions, RBAC, observability, deployment—to be assembled by hand. Agno treats the entire platform as the deliverable, not just the agent.
What This Does
Agno is a Python framework and runtime for building, serving, and managing agent platforms. The libs/ directory holds the SDK and runtime, while cookbook/ contains 2,919 files of examples covering agents, teams, workflows, and the AgentOS runtime—including SSE reconnection, crash recovery, and background execution.
The README positions it as a full platform: 50+ API endpoints with SSE and websockets, storage for sessions and traces, JWT-based RBAC, human approval, and deployment targets via separate starter repos. The cookbook/00_quickstart/ folder shows the intended path: agent, tools, memory, storage, then serving.
How It Is Wired
Execution starts in the cookbook. The primary entry point is main in cookbook/01_demo/evals/__main__.py:248, reaching 92 functions. It runs evaluation cases, writes files, and makes network calls. The cookbook/05_agent_os/client/ directory holds the runtime client—send_message is the most-called function (10 call sites), and parse_sse_message/parse_sse_line handle the streaming protocol across client and workflow examples.
The widest blast radius sits in cookbook/04_workflows/06_advanced_concepts/background_execution/websocket_client.py (17 functions, called from 7 files) and cookbook/02_agents/14_advanced/custom_cancellation_manager.py (18 functions, called from 6 files, reads/writes state). The latter owns _read_state/_write_state, the hub for run-cancellation persistence. A traced path from main to send_message leaves the process via self.websocket.send—one hop from entry to network.
The runtime itself is not mapped: no internal call graph edges resolved for libs/, so the framework's internal wiring remains unverified by this analysis.
How To Use It
- Setup:
pip install -r cookbook/00_quickstart/requirements.txt(orpip install -e libs/agno). - Configuration:
cookbook/00_quickstart/config.yamlandcookbook/01_demo/config.yamlhold settings; environment variables for API keys go in a.envfile. - Running it: Start with
cookbook/00_quickstart/run.pyfor a single agent, orpython -m cookbook.01_demo.evalsfor the evaluation harness. The AgentOS server starts viacookbook/05_agent_os/client/server.py.
git clone https://github.com/moses-y/agno
cd agno
pip install -r cookbook/00_quickstart/requirements.txt
python cookbook/00_quickstart/run.py
Real-World Use
A support team runs cookbook/03_teams/02_modes/tasks_stream.py to stream task status from a multi-agent team to a dashboard. The team's build_team function (called from 2 places) assembles agents; render and add_task update the UI in real time. The cookbook/02_agents/14_advanced/cancel_run.py pattern lets an operator cancel a long-running agent mid-flight, with state persisted through custom_cancellation_manager.py for recovery.
Code Health & Issues
Deep static analysis ran on this repo. Findings, ranked by severity:
- High – Pin third-party GitHub Actions to a commit SHA –
.github/workflows(e.g.,pypa/gh-action-pypi-publish@release/v1). Mutable tags risk supply-chain compromise. - High – Commit a lockfile beside the manifest –
libs/agno/pyproject.toml. Unpinned transitive deps ship untested code. - Medium – Declare least-privilege
GITHUB_TOKENpermissions –.github/workflows/pr-lint.yml(3 workflows, nopermissions). - Medium – Enable Dependabot or Renovate – 13 manifests, no update bot.
- Medium – Pin container base image by digest –
libs/agno/tests/system/Dockerfile.adk(python:3.12-slim). - Medium – Add a dependency vulnerability scan to CI – no scan in
.github/workflows. - Medium – Set
persist-credentials: falseon checkout –.github/workflows/release.yml. - Medium – Add a non-root
USERto the image –libs/agno/tests/system/Dockerfile.adk. - Low – Set
timeout-minuteson workflow jobs – 3 workflows with no job timeout.
Tests (1,410 files) and CI are present; no secrets committed; no lockfile.
The Bottom Line
Agno is a serious agent-platform framework with strong documentation and a rich cookbook, but the runtime's internal wiring is unverified and the CI/CD has real supply-chain gaps. Teams needing a self-hosted agent platform with RBAC and multi-tenant isolation should evaluate it; fix the action pinning and lockfile before production.