| name | agno |
| description | Build production AI agents with Agno (formerly Phidata) — define Agent with model/tools/instructions/memory/knowledge, compose Agent Teams with coordinator routing, add Storage for persistence, and integrate RAG via built-in KnowledgeBase with PDF/URL/text sources. |
| triggers | ["agno","phidata","agno agent","agno team","agno knowledge","agno storage","agno memory","phi agent","agent team coordinator","agent with knowledge base","agno tools","agno model"] |
| do_not_use_for | ["State graph agents — use langgraph instead","Multi-agent role crews — use crewai instead","LLM fine-tuning — use llamafactory instead"] |
| see_also | ["crewai","langgraph","mem0"] |
Agno — Production AI Agent Framework
Source: agno-agi/agno (Mozilla PL) — formerly Phidata; full-stack agent framework
Why Agno
- One unified API for agents, teams, memory, knowledge, storage, tools
- Agent Teams: coordinator routes tasks to specialized sub-agents
- Built-in RAG: KnowledgeBase with PDF, URL, text, database sources
- Persistent storage: PostgreSQL, SQLite, MongoDB for long-term memory
- Playground UI:
agent.serve() launches a ready-made web UI
Install
pip install agno
pip install agno[anthropic]
pip install agno[openai]
pip install agno[all]
Minimal Agent
from agno.agent import Agent
from agno.models.anthropic import Claude
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
instructions="You are a helpful assistant.",
markdown=True,
)
agent.print_response("What is quantum computing?")
response = agent.run("Explain RAG in 3 bullets")
print(response.content)
Agent with Tools
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools
from agno.tools.python import PythonTools
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
tools=[
DuckDuckGoTools(),
YFinanceTools(stock_price=True, analyst_recommendations=True),
PythonTools(),
],
instructions=[
"Use DuckDuckGo to search for recent news",
"Use YFinance for stock data",
"Always cite your sources",
],
show_tool_calls=True,
markdown=True,
)
agent.print_response("What is Apple's current stock price and recent news?")
Memory & Storage
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.memory.db.sqlite import SqliteMemoryDb
from agno.storage.sqlite import SqliteStorage
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
memory=SqliteMemoryDb(table_name="agent_memory", db_file="agent.db"),
enable_user_memories=True,
storage=SqliteStorage(table_name="agent_sessions", db_file="agent.db"),
add_history_to_messages=True,
num_history_runs=3,
)
agent.print_response("My name is Alice and I love hiking.", user_id="alice")
agent.print_response("What do you know about me?", user_id="alice")
Knowledge Base (RAG)
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.knowledge.pdf import PDFKnowledgeBase
from agno.knowledge.url import URLKnowledgeBase
from agno.knowledge.text import TextKnowledgeBase
from agno.vectordb.pgvector import PgVector
from agno.embedder.openai import OpenAIEmbedder
vector_db = PgVector(
table_name="agent_knowledge",
db_url="postgresql://user:pass@localhost/db",
embedder=OpenAIEmbedder(id="text-embedding-3-small"),
)
knowledge = PDFKnowledgeBase(
path="docs/",
vector_db=vector_db,
)
knowledge.load(recreate=False)
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
knowledge=knowledge,
search_knowledge=True,
instructions="Answer from the knowledge base. Cite sources.",
)
agent.print_response("What does the document say about authentication?")
Agent Teams
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools
web_agent = Agent(
name="Web Researcher",
role="Search the web for information",
model=Claude(id="claude-sonnet-4-5"),
tools=[DuckDuckGoTools()],
instructions="Always include sources",
)
finance_agent = Agent(
name="Finance Analyst",
role="Analyze financial data and markets",
model=Claude(id="claude-sonnet-4-5"),
tools=[YFinanceTools(stock_price=True, analyst_recommendations=True)],
instructions="Provide data-backed analysis",
)
team = Team(
name="Research Team",
mode="coordinate",
model=Claude(id="claude-opus-4-5"),
members=[web_agent, finance_agent],
instructions="Coordinate agents to provide comprehensive research",
)
team.print_response("What are the latest AI trends and their market impact?")
Structured Output
from pydantic import BaseModel
from agno.agent import Agent
from agno.models.anthropic import Claude
class MovieSummary(BaseModel):
title: str
director: str
year: int
genre: list[str]
summary: str
agent = Agent(
model=Claude(id="claude-sonnet-4-5"),
response_model=MovieSummary,
)
movie: MovieSummary = agent.run("Tell me about Inception").content
print(movie.title, movie.director, movie.year)
Async Agent
import asyncio
from agno.agent import Agent
from agno.models.anthropic import Claude
agent = Agent(model=Claude(id="claude-sonnet-4-5"))
async def main():
response = await agent.arun("Explain neural networks")
print(response.content)
async for chunk in await agent.astream("Write a poem"):
print(chunk.content, end="", flush=True)
asyncio.run(main())
Playground (Web UI)
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.playground import Playground, serve_playground_app
agent = Agent(
name="My Assistant",
model=Claude(id="claude-sonnet-4-5"),
markdown=True,
)
app = Playground(agents=[agent]).get_app()
serve_playground_app("main:app", reload=True)
Built-in Tools
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools
from agno.tools.python import PythonTools
from agno.tools.shell import ShellTools
from agno.tools.file import FileTools
from agno.tools.github import GitHubTools
from agno.tools.slack import SlackTools
from agno.tools.newspaper import NewspaperTools
from agno.tools.arxiv import ArxivTools
from agno.tools.calculator import CalculatorTools
from agno.tools.email import EmailTools
from agno.tools.sql import SQLTools
from agno.tools.docker import DockerTools
Anti-Fake-Pass Checks