Skip to main content
If you’re building with Agno, you’re guaranteed best-in-class performance by default. Our obsession with performance is necessary because even simple AI workflows can spawn hundreds of Agents and ause many tasks are long-running — stateless, horizontal scalability is key for success. If your system needs to support even a modest number of users, performance issues will quickly become apparent and you need to plan for it ahead of time. At Agno, we optimize performance across 3 dimensions:
  1. Agent performance: We optimize static operations (instantiation, memory footprint) and runtime operations (tool calls, memory updates, history management).
  2. System performance: The AgentOS API is async by default and has a minimal memory footprint. The system is stateless and horizontally scalable, with a focus on preventing memory leaks. It handles parallel and batch embedding generation during knowledge ingestion, metrics collection in background tasks, and other system-level optimizations.
  3. Agent reliability and accuracy: Monitored through evals, which we’ll explore later.

Agent Performance

Let’s measure the time it takes to instantiate an Agent and the memory footprint of an Agent. Here are the numbers (last measured in Oct 2025, on an Apple M4 MacBook Pro):
  • Agent instantiation: ~3μs on average
  • Memory footprint: ~6.6Kib on average
We’ll show below that Agno Agents instantiate 529× faster than Langgraph, 57× faster than PydanticAI, and 70× faster than CrewAI. Agno Agents also use 24× lower memory than Langgraph, 4× lower than PydanticAI, and 10× lower than CrewAI.
Your run-time will be mostly bottlenecked by inference, but we must do everything possible to minimize overhead, reduce memory usage, and parallelize tool calls.

Instantiation Time

Let’s measure instantiation time for an Agent with 1 tool. We’ll run the evaluation 1000 times to get a baseline measurement. We’ll compare Agno to LangGraph, CrewAI and Pydantic AI.
The code for this benchmark is available here. You should run the evaluation yourself on your own machine, please, do not take these results at face value.
# Setup virtual environment
./scripts/perf_setup.sh
source .venvs/perfenv/bin/activate

# Agno
python cookbook/evals/performance/instantiate_agent_with_tool.py

# LangGraph
python cookbook/evals/performance/comparison/langgraph_instantiation.py
# CrewAI
python cookbook/evals/performance/comparison/crewai_instantiation.py
# Pydantic AI
python cookbook/evals/performance/comparison/pydantic_ai_instantiation.py
LangGraph is on the right, let’s start it first and give it a head start. Then CrewAI and Pydantic AI follow, and finally Agno. Agno obviously finishes first, but let’s see by how much.

Memory Usage

To measure memory usage, we use the tracemalloc library. We first calculate a baseline memory usage by running an empty function, then run the Agent 1000x times and calculate the difference. This gives a (reasonably) isolated measurement of the memory usage of the Agent. We recommend running the evaluation yourself on your own machine, and digging into the code to see how it works. If we’ve made a mistake, please let us know.

Results

Taking Agno as the baseline, we can see that:
MetricAgnoLanggraphPydanticAICrewAI
Time (seconds)529× slower57× slower70× slower
Memory (MiB)24× higher4× higher10× higher
Exact numbers from the benchmark:
MetricAgnoLanggraphPydanticAICrewAI
Time (seconds)0.0000030.0015870.0001700.000210
Memory (MiB)0.0066420.1614350.0287120.065652
Agno agents are designed for performance and while we share benchmarks against other frameworks, we should be mindful that accuracy and reliability are more important than speed.
I