The programming language for agentic software.
Build, run, and manage multi-agent systems at scale.
Software is shifting from deterministic request–response to reasoning systems that plan, call tools, remember context, and make decisions. Agno is the language for building that software correctly. It provides:
| Layer | Responsibility |
|---|---|
| SDK | Agents, teams, workflows, memory, knowledge, tools, guardrails, approval flows |
| Engine | Model calls, tool orchestration, structured outputs, runtime enforcement |
| AgentOS | Streaming APIs, isolation, auth, approval enforcement, tracing, control plane |
Build a stateful, tool-using agent and serve it as a production API in ~20 lines.
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.anthropic import Claude
from agno.os import AgentOS
from agno.tools.mcp import MCPTools
agno_assist = Agent(
name="Agno Assist",
model=Claude(id="claude-sonnet-4-6"),
db=SqliteDb(db_file="agno.db"),
tools=[MCPTools(url="https://docs.agno.com/mcp")],
add_history_to_context=True,
num_history_runs=3,
markdown=True,
)
agent_os = AgentOS(agents=[agno_assist], tracing=True)
app = agent_os.get_app()Run it:
export ANTHROPIC_API_KEY="***"
uvx --python 3.12 \
--with "agno[os]" \
--with anthropic \
--with mcp \
fastapi dev agno_assist.pyIn ~20 lines, you get:
- A stateful agent with streaming responses
- Per-user, per-session isolation
- A production API at http://localhost:8000
- Native tracing
Connect to the AgentOS UI to monitor, manage, and test your agents.
- Open os.agno.com and sign in.
- Click "Add new OS" in the top navigation.
- Select "Local" to connect to a local AgentOS.
- Enter your endpoint URL (default:
http://localhost:8000). - Name it "Local AgentOS".
- Click "Connect".
Connect.AgentOS.mp4
Open Chat, select your agent, and ask:
What is Agno?
The agent retrieves context from the Agno MCP server and responds with grounded answers.
AgentOS.Chat.mp4
You can use this exact same architecture for running multi-agent systems in production.
Agentic software introduces three fundamental shifts.
Traditional software receives a request and returns a response. Agents stream reasoning, tool calls, and results in real time. They can pause mid-execution, wait for approval, and resume later.
Agno treats streaming and long-running execution as first-class behavior.
Traditional systems execute predefined decision logic written in advance. Agents choose actions dynamically. Some actions are low risk. Some require user approval. Some require administrative authority.
Agno lets you define who decides what as part of the agent definition, with:
- Approval workflows
- Human-in-the-loop
- Audit logs
- Enforcement at runtime
Traditional systems are designed to be predictable. Every execution path is defined in advance. Agents introduce probabilistic reasoning into the execution path.
Agno builds trust into the engine itself:
- Guardrails run as part of execution
- Evaluations integrate into the agent loop
- Traces and audit logs are first-class
Agno runs in your infrastructure, not ours.
- Stateless, horizontally scalable runtime.
- 50+ APIs and background execution.
- Per-user and per-session isolation.
- Runtime approval enforcement.
- Native tracing and full auditability.
- Sessions, memory, knowledge, and traces stored in your database.
You own the system. You own the data. You define the rules.
Agno powers real agentic systems built from the same primitives above.
- Pal → A personal agent that learns your preferences.
- Dash → A self-learning data agent grounded in six layers of context.
- Scout → A self-learning context agent that manages enterprise context knowledge.
- Gcode → A post-IDE coding agent that improves over time.
- Investment Team → A multi-agent investment committee that debates and allocates capital.
Single agents. Coordinated teams. Structured workflows. All built on one architecture.
- Read the docs
- Build your first agent
- Explore the cookbook
Add Agno docs as a source in your coding tools:
Cursor: Settings → Indexing & Docs → Add https://docs.agno.com/llms-full.txt
Also works with VSCode, Windsurf, and similar tools.
See the contributing guide.
Agno logs which model providers are used to prioritize updates. Disable with AGNO_TELEMETRY=false.