# Agno: features, protocols, quickstart

## TL;DR

Agno is an Apache-2.0 Python SDK and runtime from the company of the same name (GitHub: agno-agi) for agents, teams and workflows. Its AgentOS runtime serves them as an API with storage, approvals and chat or protocol interfaces, and a web control plane manages them. It suits Python teams that want to self-host their own agent platform.

## Key facts

| Field | Value |
| --- | --- |
| Type | Framework |
| Languages / SDKs | Python |
| License | Apache-2.0 |
| Pricing model | [Open core](https://www.agno.com/pricing) |
| Orchestration pattern | Supervisor |
| GitHub stars | 42,391 (as of 2026-09-30) |
| GitHub forks | 6,043 |
| Last push | 2026-09-30 |
| Latest release | v3.0.11 |
| Repository | [agno-agi/agno](https://github.com/agno-agi/agno) |
| Website | [www.agno.com](https://www.agno.com) |
| Documentation | [docs.agno.com](https://docs.agno.com/) |
| Last verified | 2026-09-30 |

## Key features

- Agents that combine a model with tools, memory, knowledge, storage, guardrails and human-in-the-loop hooks. ([source](https://docs.agno.com/agents/overview))
- Teams with a leader and members (agents or nested teams) in coordinate, route, broadcast or tasks mode. ([source](https://docs.agno.com/teams/delegation))
- Workflows whose steps run agents, teams or functions sequentially, in parallel, in loops or conditionally. ([source](https://docs.agno.com/workflows/overview))
- AgentOS storage: one `db` interface for sessions, memory, knowledge metadata, traces, schedules and approvals in your own database. ([source](https://docs.agno.com/features/storage))
- Human-in-the-loop options: tool confirmation, user input, external tool execution and persisted admin approvals. ([source](https://docs.agno.com/hitl/overview))
- MCP both ways: `MCPTools` connects agents to MCP servers, and AgentOS can expose agents, teams and workflows as an MCP server. ([source](https://docs.agno.com/features/mcp-server))
- AgentOS interfaces for Slack, Telegram, WhatsApp, Discord, A2A and AG-UI. ([source](https://docs.agno.com/features/interfaces))
- AgentOS can also serve agents built with the Claude Agent SDK, LangGraph, DSPy and Antigravity through adapters. ([source](https://docs.agno.com/agent-os/multi-framework/overview))

## Architecture and orchestration pattern

Pattern: Supervisor.

Agno has three building blocks. An **Agent** builds context for a model, runs the tools it requests and returns a run output; memory, knowledge and storage are optional add-ons. A **Team** has a leader model and members (agents or nested teams); its mode decides whether the leader decomposes and delegates tasks (coordinate, the default), hands the request to one member (route), sends it to all members (broadcast) or works through a shared task list (tasks). A **Workflow** runs agents, teams and plain functions as steps with sequential, parallel, loop, condition and router control flow.

**AgentOS** is the runtime. It serves agents, teams and workflows as a FastAPI application with streaming endpoints, and persists sessions, runs, memory, traces, schedules and approvals through a shared `db` interface (Postgres, SQLite and other backends). Interfaces attach the same components to chat apps and to A2A, AG-UI and MCP clients, and remote-execution helpers call agents on other AgentOS instances.

A browser-based control plane connects to local or deployed AgentOS runtimes to inspect traces and sessions, edit memory and knowledge, resolve approvals and manage schedules; the data stays in the runtime's database.

### Human in the loop

Marking a tool with `@tool(requires_confirmation=True)` pauses the run before the call: the run output has `is_paused` set, the application approves or rejects the pending tool call, and `continue_run()` resumes. Other documented modes collect specific user input, let the agent ask for input when it needs it, hand a tool call to external code for execution, or persist an approval for admin review. With a database configured, a paused run can be continued later by `run_id` and `session_id`, even from a new process. Workflows can pause before or after a step or at a tool call inside a step; pause state is saved to the workflow database and `workflow.continue_run()` picks up from there. Approvals can also be resolved in the AgentOS control plane.

### Harnesses it can drive

- Claude Code ([evidence](https://docs.agno.com/agent-os/multi-framework/claude-agent-sdk))
- Codex ([evidence](https://docs.agno.com/features/mcp-server))

## Protocols

| Protocol | Support | Evidence | Note |
| --- | --- | --- | --- |
| MCP | Yes (checked 2026-09-30) | [link](https://docs.agno.com/features/mcp-server) | Client and server: `MCPTools` gives agents MCP server tools, and `AgentOS(mcp=...)` exposes agents, teams and workflows to MCP clients such as Claude Code, Codex and Cursor. |
| A2A | Yes (checked 2026-09-30) | [link](https://docs.agno.com/agent-os/interfaces/a2a/introduction) | Server and client: the AgentOS `A2A` interface serves agents, teams and workflows over A2A (since v2.1.2), and `agno.client.a2a.A2AClient` calls A2A servers. |
| AG-UI | Yes (checked 2026-09-30) | [link](https://docs.agno.com/agent-os/interfaces/ag-ui/introduction) | Server side: the AgentOS `AGUI` interface (`agno[os,agui]`) exposes an agent at `/agui` for AG-UI clients; the AG-UI README lists Agno as 1st party. |

## Best for

- Self-hosting an agent platform with your own database, auth and approval queue
- Support desks that route questions to specialist agents and serve them in Slack, WhatsApp or Telegram
- Deployments that need JWT-based RBAC, audit trails and persisted approvals
- Serving Claude Code (through the Claude Agent SDK) next to Agno agents behind one API

## Not for

- Non-Python codebases
- Teams that need the control plane for deployed runtimes at no cost; live connections require a paid plan
- Simple single-call tasks, where a team's separate leader and member model calls add latency and tokens

## Quickstart

```sh
pip install -U agno openai
```

Install not yet verified by this site.

```python
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.team import Team
from agno.team.mode import TeamMode

model = OpenAIResponses(id="gpt-5.4-mini")  # reads OPENAI_API_KEY
billing = Agent(name="Billing Agent", role="Answer billing and refund questions", model=model)
tech = Agent(name="Tech Agent", role="Answer setup and troubleshooting questions", model=model)

helpdesk = Team(
    name="Helpdesk",
    model=model,
    members=[billing, tech],
    mode=TeamMode.route,  # the leader picks one member, who answers directly
)
helpdesk.print_response("My invoice shows two charges for March.")
```

### Common pitfalls

- Package metadata requires Python >=3.9; the setup guide creates a Python 3.12 environment.
- Model providers are separate installs (`openai` here) and need their API key, such as `OPENAI_API_KEY`.
- Features live behind extras: `agno[os]` for AgentOS, `agno[mcp]`, `agno[os,a2a]`, `agno[os,agui]`.
- Agno sends a telemetry event per agent run; set `AGNO_TELEMETRY=false` to disable it.
- Upgrading from v2 to v3 requires a database migration (runs move to their own table) and removing the retired Culture feature.
- To resume a paused HITL run in another process, keep both `run_id` and `session_id` and use the same database.

Official quickstart: https://docs.agno.com/sdk/setup

## Pros

- Sessions, memory, traces and approvals are stored in a database you control. ([source](https://docs.agno.com/features/storage))
- Team orchestration modes can be swapped without changing member logic. ([source](https://docs.agno.com/teams/delegation))
- A2A and AG-UI endpoints are built into AgentOS, next to chat interfaces. ([source](https://docs.agno.com/features/interfaces))
- Paused human-in-the-loop runs are persisted and can be resumed from another process. ([source](https://docs.agno.com/hitl/user-confirmation))
- AgentOS can host Claude Code via the Claude Agent SDK alongside native agents. ([source](https://docs.agno.com/agent-os/multi-framework/claude-agent-sdk))

## Cons

- Sends a telemetry event per agent run unless `AGNO_TELEMETRY=false` is set. ([source](https://github.com/agno-agi/agno/blob/main/README.md))
- v3 needs a database migration and removed the Culture feature, whose v2 imports now fail. ([source](https://docs.agno.com/other/v3-migration))
- The control plane is free only for local runtimes; connecting a live AgentOS starts with the $150/month Pro plan. ([source](https://www.agno.com/pricing))
- Teams add latency and token usage because the leader and each member make separate model calls. ([source](https://docs.agno.com/teams/overview))
- Storage backends differ in capability; session support does not guarantee every AgentOS feature works on that backend. ([source](https://docs.agno.com/features/storage))

## Alternatives

- [CrewAI](https://multiagentguide.top/tools/crewai.md)
- [LangGraph](https://multiagentguide.top/tools/langgraph.md)
- [Pydantic AI](https://multiagentguide.top/tools/pydantic-ai.md)
- [OpenAI Agents SDK (Python)](https://multiagentguide.top/tools/openai-agents-sdk.md)
- [Microsoft Agent Framework](https://multiagentguide.top/tools/microsoft-agent-framework.md)

## FAQ

### Does Agno support MCP?

Yes, in both directions. `MCPTools` connects agents to MCP servers, and AgentOS can publish agents, teams and workflows as an MCP server for clients such as Claude Code, Codex and Cursor.

### Does Agno support A2A and AG-UI?

Yes. AgentOS ships `A2A` and `AGUI` interfaces, and `A2AClient` calls other A2A servers. Both interfaces need their install extras.

### Is Agno free?

The SDK is Apache-2.0 and the runtime is free to self-host. The pricing page lists a free control plane for local runtimes, a $150/month Pro plan for live runtimes, and custom Enterprise pricing.

### Can Agno run Claude Code?

Yes. `ClaudeAgent` wraps the Claude Agent SDK so Claude Code can be served through AgentOS with tool permission rules.

### What does a Team's mode do?

It sets the orchestration: coordinate (leader delegates and synthesizes), route (one member answers), broadcast (all members get the task) or tasks (a shared task list).

## Sources

- [Agno GitHub repository](https://github.com/agno-agi/agno)
- [Agno documentation](https://docs.agno.com/)
- [Agno README (features, telemetry)](https://github.com/agno-agi/agno/blob/main/README.md)
- [Agno homepage](https://www.agno.com)
- [Install & Setup (Agno docs)](https://docs.agno.com/sdk/setup)
- [What are Agents? (Agno docs)](https://docs.agno.com/agents/overview)
- [What are Teams? (Agno docs)](https://docs.agno.com/teams/overview)
- [Team delegation modes (Agno docs)](https://docs.agno.com/teams/delegation)
- [What are Workflows? (Agno docs)](https://docs.agno.com/workflows/overview)
- [Agent Storage (Agno docs)](https://docs.agno.com/features/storage)
- [Human-in-the-Loop overview (Agno docs)](https://docs.agno.com/hitl/overview)
- [User Confirmation (Agno docs)](https://docs.agno.com/hitl/user-confirmation)
- [Human-in-the-Loop in Workflows (Agno docs)](https://docs.agno.com/workflows/hitl/overview)
- [Model Context Protocol tools (Agno docs)](https://docs.agno.com/tools/mcp/overview)
- [AgentOS MCP Server (Agno docs)](https://docs.agno.com/features/mcp-server)
- [AgentOS Interfaces (Agno docs)](https://docs.agno.com/features/interfaces)
- [A2A interface (Agno docs)](https://docs.agno.com/agent-os/interfaces/a2a/introduction)
- [AG-UI interface (Agno docs)](https://docs.agno.com/agent-os/interfaces/ag-ui/introduction)
- [Claude Agent SDK in AgentOS (Agno docs)](https://docs.agno.com/agent-os/multi-framework/claude-agent-sdk)
- [Multi-Framework Support (Agno docs)](https://docs.agno.com/agent-os/multi-framework/overview)
- [AgentOS control plane (Agno docs)](https://docs.agno.com/features/control-plane)
- [Migrating to Agno v3.0](https://docs.agno.com/other/v3-migration)
- [Culture feature removed in v3 (Agno docs)](https://docs.agno.com/culture/overview)
- [Agno pricing](https://www.agno.com/pricing)
- [agno pyproject.toml](https://github.com/agno-agi/agno/blob/main/libs/agno/pyproject.toml)
- [AG-UI README, supported integrations](https://github.com/ag-ui-protocol/ag-ui/blob/main/README.md)

---

Data as of 2026-09-30. Not affiliated with listed projects. HTML version: https://multiagentguide.top/tools/agno
