agno 2.0.1__py3-none-any.whl → 2.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. agno/agent/agent.py +6015 -2823
  2. agno/api/api.py +2 -0
  3. agno/api/os.py +1 -1
  4. agno/culture/__init__.py +3 -0
  5. agno/culture/manager.py +956 -0
  6. agno/db/async_postgres/__init__.py +3 -0
  7. agno/db/base.py +385 -6
  8. agno/db/dynamo/dynamo.py +388 -81
  9. agno/db/dynamo/schemas.py +47 -10
  10. agno/db/dynamo/utils.py +63 -4
  11. agno/db/firestore/firestore.py +435 -64
  12. agno/db/firestore/schemas.py +11 -0
  13. agno/db/firestore/utils.py +102 -4
  14. agno/db/gcs_json/gcs_json_db.py +384 -42
  15. agno/db/gcs_json/utils.py +60 -26
  16. agno/db/in_memory/in_memory_db.py +351 -66
  17. agno/db/in_memory/utils.py +60 -2
  18. agno/db/json/json_db.py +339 -48
  19. agno/db/json/utils.py +60 -26
  20. agno/db/migrations/manager.py +199 -0
  21. agno/db/migrations/v1_to_v2.py +510 -37
  22. agno/db/migrations/versions/__init__.py +0 -0
  23. agno/db/migrations/versions/v2_3_0.py +938 -0
  24. agno/db/mongo/__init__.py +15 -1
  25. agno/db/mongo/async_mongo.py +2036 -0
  26. agno/db/mongo/mongo.py +653 -76
  27. agno/db/mongo/schemas.py +13 -0
  28. agno/db/mongo/utils.py +80 -8
  29. agno/db/mysql/mysql.py +687 -25
  30. agno/db/mysql/schemas.py +61 -37
  31. agno/db/mysql/utils.py +60 -2
  32. agno/db/postgres/__init__.py +2 -1
  33. agno/db/postgres/async_postgres.py +2001 -0
  34. agno/db/postgres/postgres.py +676 -57
  35. agno/db/postgres/schemas.py +43 -18
  36. agno/db/postgres/utils.py +164 -2
  37. agno/db/redis/redis.py +344 -38
  38. agno/db/redis/schemas.py +18 -0
  39. agno/db/redis/utils.py +60 -2
  40. agno/db/schemas/__init__.py +2 -1
  41. agno/db/schemas/culture.py +120 -0
  42. agno/db/schemas/memory.py +13 -0
  43. agno/db/singlestore/schemas.py +26 -1
  44. agno/db/singlestore/singlestore.py +687 -53
  45. agno/db/singlestore/utils.py +60 -2
  46. agno/db/sqlite/__init__.py +2 -1
  47. agno/db/sqlite/async_sqlite.py +2371 -0
  48. agno/db/sqlite/schemas.py +24 -0
  49. agno/db/sqlite/sqlite.py +774 -85
  50. agno/db/sqlite/utils.py +168 -5
  51. agno/db/surrealdb/__init__.py +3 -0
  52. agno/db/surrealdb/metrics.py +292 -0
  53. agno/db/surrealdb/models.py +309 -0
  54. agno/db/surrealdb/queries.py +71 -0
  55. agno/db/surrealdb/surrealdb.py +1361 -0
  56. agno/db/surrealdb/utils.py +147 -0
  57. agno/db/utils.py +50 -22
  58. agno/eval/accuracy.py +50 -43
  59. agno/eval/performance.py +6 -3
  60. agno/eval/reliability.py +6 -3
  61. agno/eval/utils.py +33 -16
  62. agno/exceptions.py +68 -1
  63. agno/filters.py +354 -0
  64. agno/guardrails/__init__.py +6 -0
  65. agno/guardrails/base.py +19 -0
  66. agno/guardrails/openai.py +144 -0
  67. agno/guardrails/pii.py +94 -0
  68. agno/guardrails/prompt_injection.py +52 -0
  69. agno/integrations/discord/client.py +1 -0
  70. agno/knowledge/chunking/agentic.py +13 -10
  71. agno/knowledge/chunking/fixed.py +1 -1
  72. agno/knowledge/chunking/semantic.py +40 -8
  73. agno/knowledge/chunking/strategy.py +59 -15
  74. agno/knowledge/embedder/aws_bedrock.py +9 -4
  75. agno/knowledge/embedder/azure_openai.py +54 -0
  76. agno/knowledge/embedder/base.py +2 -0
  77. agno/knowledge/embedder/cohere.py +184 -5
  78. agno/knowledge/embedder/fastembed.py +1 -1
  79. agno/knowledge/embedder/google.py +79 -1
  80. agno/knowledge/embedder/huggingface.py +9 -4
  81. agno/knowledge/embedder/jina.py +63 -0
  82. agno/knowledge/embedder/mistral.py +78 -11
  83. agno/knowledge/embedder/nebius.py +1 -1
  84. agno/knowledge/embedder/ollama.py +13 -0
  85. agno/knowledge/embedder/openai.py +37 -65
  86. agno/knowledge/embedder/sentence_transformer.py +8 -4
  87. agno/knowledge/embedder/vllm.py +262 -0
  88. agno/knowledge/embedder/voyageai.py +69 -16
  89. agno/knowledge/knowledge.py +594 -186
  90. agno/knowledge/reader/base.py +9 -2
  91. agno/knowledge/reader/csv_reader.py +8 -10
  92. agno/knowledge/reader/docx_reader.py +5 -6
  93. agno/knowledge/reader/field_labeled_csv_reader.py +290 -0
  94. agno/knowledge/reader/json_reader.py +6 -5
  95. agno/knowledge/reader/markdown_reader.py +13 -13
  96. agno/knowledge/reader/pdf_reader.py +43 -68
  97. agno/knowledge/reader/pptx_reader.py +101 -0
  98. agno/knowledge/reader/reader_factory.py +51 -6
  99. agno/knowledge/reader/s3_reader.py +3 -15
  100. agno/knowledge/reader/tavily_reader.py +194 -0
  101. agno/knowledge/reader/text_reader.py +13 -13
  102. agno/knowledge/reader/web_search_reader.py +2 -43
  103. agno/knowledge/reader/website_reader.py +43 -25
  104. agno/knowledge/reranker/__init__.py +2 -8
  105. agno/knowledge/types.py +9 -0
  106. agno/knowledge/utils.py +20 -0
  107. agno/media.py +72 -0
  108. agno/memory/manager.py +336 -82
  109. agno/models/aimlapi/aimlapi.py +2 -2
  110. agno/models/anthropic/claude.py +183 -37
  111. agno/models/aws/bedrock.py +52 -112
  112. agno/models/aws/claude.py +33 -1
  113. agno/models/azure/ai_foundry.py +33 -15
  114. agno/models/azure/openai_chat.py +25 -8
  115. agno/models/base.py +999 -519
  116. agno/models/cerebras/cerebras.py +19 -13
  117. agno/models/cerebras/cerebras_openai.py +8 -5
  118. agno/models/cohere/chat.py +27 -1
  119. agno/models/cometapi/__init__.py +5 -0
  120. agno/models/cometapi/cometapi.py +57 -0
  121. agno/models/dashscope/dashscope.py +1 -0
  122. agno/models/deepinfra/deepinfra.py +2 -2
  123. agno/models/deepseek/deepseek.py +2 -2
  124. agno/models/fireworks/fireworks.py +2 -2
  125. agno/models/google/gemini.py +103 -31
  126. agno/models/groq/groq.py +28 -11
  127. agno/models/huggingface/huggingface.py +2 -1
  128. agno/models/internlm/internlm.py +2 -2
  129. agno/models/langdb/langdb.py +4 -4
  130. agno/models/litellm/chat.py +18 -1
  131. agno/models/litellm/litellm_openai.py +2 -2
  132. agno/models/llama_cpp/__init__.py +5 -0
  133. agno/models/llama_cpp/llama_cpp.py +22 -0
  134. agno/models/message.py +139 -0
  135. agno/models/meta/llama.py +27 -10
  136. agno/models/meta/llama_openai.py +5 -17
  137. agno/models/nebius/nebius.py +6 -6
  138. agno/models/nexus/__init__.py +3 -0
  139. agno/models/nexus/nexus.py +22 -0
  140. agno/models/nvidia/nvidia.py +2 -2
  141. agno/models/ollama/chat.py +59 -5
  142. agno/models/openai/chat.py +69 -29
  143. agno/models/openai/responses.py +103 -106
  144. agno/models/openrouter/openrouter.py +41 -3
  145. agno/models/perplexity/perplexity.py +4 -5
  146. agno/models/portkey/portkey.py +3 -3
  147. agno/models/requesty/__init__.py +5 -0
  148. agno/models/requesty/requesty.py +52 -0
  149. agno/models/response.py +77 -1
  150. agno/models/sambanova/sambanova.py +2 -2
  151. agno/models/siliconflow/__init__.py +5 -0
  152. agno/models/siliconflow/siliconflow.py +25 -0
  153. agno/models/together/together.py +2 -2
  154. agno/models/utils.py +254 -8
  155. agno/models/vercel/v0.py +2 -2
  156. agno/models/vertexai/__init__.py +0 -0
  157. agno/models/vertexai/claude.py +96 -0
  158. agno/models/vllm/vllm.py +1 -0
  159. agno/models/xai/xai.py +3 -2
  160. agno/os/app.py +543 -178
  161. agno/os/auth.py +24 -14
  162. agno/os/config.py +1 -0
  163. agno/os/interfaces/__init__.py +1 -0
  164. agno/os/interfaces/a2a/__init__.py +3 -0
  165. agno/os/interfaces/a2a/a2a.py +42 -0
  166. agno/os/interfaces/a2a/router.py +250 -0
  167. agno/os/interfaces/a2a/utils.py +924 -0
  168. agno/os/interfaces/agui/agui.py +23 -7
  169. agno/os/interfaces/agui/router.py +27 -3
  170. agno/os/interfaces/agui/utils.py +242 -142
  171. agno/os/interfaces/base.py +6 -2
  172. agno/os/interfaces/slack/router.py +81 -23
  173. agno/os/interfaces/slack/slack.py +29 -14
  174. agno/os/interfaces/whatsapp/router.py +11 -4
  175. agno/os/interfaces/whatsapp/whatsapp.py +14 -7
  176. agno/os/mcp.py +111 -54
  177. agno/os/middleware/__init__.py +7 -0
  178. agno/os/middleware/jwt.py +233 -0
  179. agno/os/router.py +556 -139
  180. agno/os/routers/evals/evals.py +71 -34
  181. agno/os/routers/evals/schemas.py +31 -31
  182. agno/os/routers/evals/utils.py +6 -5
  183. agno/os/routers/health.py +31 -0
  184. agno/os/routers/home.py +52 -0
  185. agno/os/routers/knowledge/knowledge.py +185 -38
  186. agno/os/routers/knowledge/schemas.py +82 -22
  187. agno/os/routers/memory/memory.py +158 -53
  188. agno/os/routers/memory/schemas.py +20 -16
  189. agno/os/routers/metrics/metrics.py +20 -8
  190. agno/os/routers/metrics/schemas.py +16 -16
  191. agno/os/routers/session/session.py +499 -38
  192. agno/os/schema.py +308 -198
  193. agno/os/utils.py +401 -41
  194. agno/reasoning/anthropic.py +80 -0
  195. agno/reasoning/azure_ai_foundry.py +2 -2
  196. agno/reasoning/deepseek.py +2 -2
  197. agno/reasoning/default.py +3 -1
  198. agno/reasoning/gemini.py +73 -0
  199. agno/reasoning/groq.py +2 -2
  200. agno/reasoning/ollama.py +2 -2
  201. agno/reasoning/openai.py +7 -2
  202. agno/reasoning/vertexai.py +76 -0
  203. agno/run/__init__.py +6 -0
  204. agno/run/agent.py +248 -94
  205. agno/run/base.py +44 -5
  206. agno/run/team.py +238 -97
  207. agno/run/workflow.py +144 -33
  208. agno/session/agent.py +105 -89
  209. agno/session/summary.py +65 -25
  210. agno/session/team.py +176 -96
  211. agno/session/workflow.py +406 -40
  212. agno/team/team.py +3854 -1610
  213. agno/tools/dalle.py +2 -4
  214. agno/tools/decorator.py +4 -2
  215. agno/tools/duckduckgo.py +15 -11
  216. agno/tools/e2b.py +14 -7
  217. agno/tools/eleven_labs.py +23 -25
  218. agno/tools/exa.py +21 -16
  219. agno/tools/file.py +153 -23
  220. agno/tools/file_generation.py +350 -0
  221. agno/tools/firecrawl.py +4 -4
  222. agno/tools/function.py +250 -30
  223. agno/tools/gmail.py +238 -14
  224. agno/tools/google_drive.py +270 -0
  225. agno/tools/googlecalendar.py +36 -8
  226. agno/tools/googlesheets.py +20 -5
  227. agno/tools/jira.py +20 -0
  228. agno/tools/knowledge.py +3 -3
  229. agno/tools/mcp/__init__.py +10 -0
  230. agno/tools/mcp/mcp.py +331 -0
  231. agno/tools/mcp/multi_mcp.py +347 -0
  232. agno/tools/mcp/params.py +24 -0
  233. agno/tools/mcp_toolbox.py +284 -0
  234. agno/tools/mem0.py +11 -17
  235. agno/tools/memori.py +1 -53
  236. agno/tools/memory.py +419 -0
  237. agno/tools/models/nebius.py +5 -5
  238. agno/tools/models_labs.py +20 -10
  239. agno/tools/notion.py +204 -0
  240. agno/tools/parallel.py +314 -0
  241. agno/tools/scrapegraph.py +58 -31
  242. agno/tools/searxng.py +2 -2
  243. agno/tools/serper.py +2 -2
  244. agno/tools/slack.py +18 -3
  245. agno/tools/spider.py +2 -2
  246. agno/tools/tavily.py +146 -0
  247. agno/tools/whatsapp.py +1 -1
  248. agno/tools/workflow.py +278 -0
  249. agno/tools/yfinance.py +12 -11
  250. agno/utils/agent.py +820 -0
  251. agno/utils/audio.py +27 -0
  252. agno/utils/common.py +90 -1
  253. agno/utils/events.py +217 -2
  254. agno/utils/gemini.py +180 -22
  255. agno/utils/hooks.py +57 -0
  256. agno/utils/http.py +111 -0
  257. agno/utils/knowledge.py +12 -5
  258. agno/utils/log.py +1 -0
  259. agno/utils/mcp.py +92 -2
  260. agno/utils/media.py +188 -10
  261. agno/utils/merge_dict.py +22 -1
  262. agno/utils/message.py +60 -0
  263. agno/utils/models/claude.py +40 -11
  264. agno/utils/print_response/agent.py +105 -21
  265. agno/utils/print_response/team.py +103 -38
  266. agno/utils/print_response/workflow.py +251 -34
  267. agno/utils/reasoning.py +22 -1
  268. agno/utils/serialize.py +32 -0
  269. agno/utils/streamlit.py +16 -10
  270. agno/utils/string.py +41 -0
  271. agno/utils/team.py +98 -9
  272. agno/utils/tools.py +1 -1
  273. agno/vectordb/base.py +23 -4
  274. agno/vectordb/cassandra/cassandra.py +65 -9
  275. agno/vectordb/chroma/chromadb.py +182 -38
  276. agno/vectordb/clickhouse/clickhousedb.py +64 -11
  277. agno/vectordb/couchbase/couchbase.py +105 -10
  278. agno/vectordb/lancedb/lance_db.py +124 -133
  279. agno/vectordb/langchaindb/langchaindb.py +25 -7
  280. agno/vectordb/lightrag/lightrag.py +17 -3
  281. agno/vectordb/llamaindex/__init__.py +3 -0
  282. agno/vectordb/llamaindex/llamaindexdb.py +46 -7
  283. agno/vectordb/milvus/milvus.py +126 -9
  284. agno/vectordb/mongodb/__init__.py +7 -1
  285. agno/vectordb/mongodb/mongodb.py +112 -7
  286. agno/vectordb/pgvector/pgvector.py +142 -21
  287. agno/vectordb/pineconedb/pineconedb.py +80 -8
  288. agno/vectordb/qdrant/qdrant.py +125 -39
  289. agno/vectordb/redis/__init__.py +9 -0
  290. agno/vectordb/redis/redisdb.py +694 -0
  291. agno/vectordb/singlestore/singlestore.py +111 -25
  292. agno/vectordb/surrealdb/surrealdb.py +31 -5
  293. agno/vectordb/upstashdb/upstashdb.py +76 -8
  294. agno/vectordb/weaviate/weaviate.py +86 -15
  295. agno/workflow/__init__.py +2 -0
  296. agno/workflow/agent.py +299 -0
  297. agno/workflow/condition.py +112 -18
  298. agno/workflow/loop.py +69 -10
  299. agno/workflow/parallel.py +266 -118
  300. agno/workflow/router.py +110 -17
  301. agno/workflow/step.py +638 -129
  302. agno/workflow/steps.py +65 -6
  303. agno/workflow/types.py +61 -23
  304. agno/workflow/workflow.py +2085 -272
  305. {agno-2.0.1.dist-info → agno-2.3.0.dist-info}/METADATA +182 -58
  306. agno-2.3.0.dist-info/RECORD +577 -0
  307. agno/knowledge/reader/url_reader.py +0 -128
  308. agno/tools/googlesearch.py +0 -98
  309. agno/tools/mcp.py +0 -610
  310. agno/utils/models/aws_claude.py +0 -170
  311. agno-2.0.1.dist-info/RECORD +0 -515
  312. {agno-2.0.1.dist-info → agno-2.3.0.dist-info}/WHEEL +0 -0
  313. {agno-2.0.1.dist-info → agno-2.3.0.dist-info}/licenses/LICENSE +0 -0
  314. {agno-2.0.1.dist-info → agno-2.3.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.0.1
3
+ Version: 2.3.0
4
4
  Summary: Agno: a lightweight library for building Multi-Agent Systems
5
5
  Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
6
  Project-URL: homepage, https://agno.com
@@ -23,7 +23,8 @@ Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  Requires-Dist: docstring-parser
25
25
  Requires-Dist: gitpython
26
- Requires-Dist: httpx
26
+ Requires-Dist: h11>=0.16.0
27
+ Requires-Dist: httpx[http2]
27
28
  Requires-Dist: packaging
28
29
  Requires-Dist: pydantic-settings
29
30
  Requires-Dist: pydantic
@@ -34,12 +35,12 @@ Requires-Dist: rich
34
35
  Requires-Dist: typer
35
36
  Requires-Dist: typing-extensions
36
37
  Provides-Extra: dev
37
- Requires-Dist: mypy; extra == "dev"
38
+ Requires-Dist: mypy==1.18.2; extra == "dev"
39
+ Requires-Dist: ruff==0.14.3; extra == "dev"
38
40
  Requires-Dist: pytest; extra == "dev"
39
41
  Requires-Dist: pytest-asyncio; extra == "dev"
40
42
  Requires-Dist: pytest-cov; extra == "dev"
41
43
  Requires-Dist: pytest-mock; extra == "dev"
42
- Requires-Dist: ruff; extra == "dev"
43
44
  Requires-Dist: timeout-decorator; extra == "dev"
44
45
  Requires-Dist: types-pyyaml; extra == "dev"
45
46
  Requires-Dist: types-aiofiles; extra == "dev"
@@ -48,12 +49,14 @@ Requires-Dist: uvicorn; extra == "dev"
48
49
  Provides-Extra: os
49
50
  Requires-Dist: fastapi; extra == "os"
50
51
  Requires-Dist: uvicorn; extra == "os"
52
+ Requires-Dist: PyJWT; extra == "os"
51
53
  Provides-Extra: integration-tests
52
54
  Requires-Dist: exa_py; extra == "integration-tests"
53
55
  Requires-Dist: ddgs; extra == "integration-tests"
54
56
  Requires-Dist: yfinance; extra == "integration-tests"
55
57
  Requires-Dist: sqlalchemy; extra == "integration-tests"
56
58
  Requires-Dist: Pillow; extra == "integration-tests"
59
+ Requires-Dist: fastmcp; extra == "integration-tests"
57
60
  Provides-Extra: opentelemetry
58
61
  Requires-Dist: opentelemetry-sdk; extra == "opentelemetry"
59
62
  Requires-Dist: opentelemetry-exporter-otlp; extra == "opentelemetry"
@@ -132,6 +135,8 @@ Provides-Extra: fal
132
135
  Requires-Dist: fal_client; extra == "fal"
133
136
  Provides-Extra: firecrawl
134
137
  Requires-Dist: firecrawl-py; extra == "firecrawl"
138
+ Provides-Extra: tavily
139
+ Requires-Dist: tavily-python; extra == "tavily"
135
140
  Provides-Extra: crawl4ai
136
141
  Requires-Dist: crawl4ai; extra == "crawl4ai"
137
142
  Provides-Extra: github
@@ -156,11 +161,19 @@ Requires-Dist: memorisdk; extra == "memori"
156
161
  Provides-Extra: newspaper
157
162
  Requires-Dist: newspaper4k; extra == "newspaper"
158
163
  Requires-Dist: lxml_html_clean; extra == "newspaper"
164
+ Provides-Extra: notion
165
+ Requires-Dist: notion-client; extra == "notion"
159
166
  Provides-Extra: opencv
160
167
  Requires-Dist: opencv-python; extra == "opencv"
168
+ Provides-Extra: parallel
169
+ Requires-Dist: parallel-web; extra == "parallel"
161
170
  Provides-Extra: psycopg
162
171
  Requires-Dist: psycopg-binary; extra == "psycopg"
163
172
  Requires-Dist: psycopg; extra == "psycopg"
173
+ Provides-Extra: reportlab
174
+ Requires-Dist: reportlab; extra == "reportlab"
175
+ Provides-Extra: scrapegraph
176
+ Requires-Dist: scrapegraph-py; extra == "scrapegraph"
164
177
  Provides-Extra: todoist
165
178
  Requires-Dist: todoist-api-python; extra == "todoist"
166
179
  Provides-Extra: valyu
@@ -185,6 +198,11 @@ Provides-Extra: sql
185
198
  Requires-Dist: sqlalchemy; extra == "sql"
186
199
  Provides-Extra: postgres
187
200
  Requires-Dist: psycopg-binary; extra == "postgres"
201
+ Provides-Extra: async-postgres
202
+ Requires-Dist: asyncpg; extra == "async-postgres"
203
+ Provides-Extra: async-mongo
204
+ Requires-Dist: pymongo; extra == "async-mongo"
205
+ Requires-Dist: motor; extra == "async-mongo"
188
206
  Provides-Extra: sqlite
189
207
  Requires-Dist: sqlalchemy; extra == "sqlite"
190
208
  Provides-Extra: gcs
@@ -193,6 +211,7 @@ Provides-Extra: firestore
193
211
  Requires-Dist: google-cloud-firestore; extra == "firestore"
194
212
  Provides-Extra: redis
195
213
  Requires-Dist: redis; extra == "redis"
214
+ Requires-Dist: redisvl; extra == "redis"
196
215
  Provides-Extra: pgvector
197
216
  Requires-Dist: pgvector; extra == "pgvector"
198
217
  Provides-Extra: chromadb
@@ -229,6 +248,8 @@ Requires-Dist: pypdf; extra == "pdf"
229
248
  Requires-Dist: rapidocr_onnxruntime; extra == "pdf"
230
249
  Provides-Extra: docx
231
250
  Requires-Dist: python-docx; extra == "docx"
251
+ Provides-Extra: pptx
252
+ Requires-Dist: python-pptx; extra == "pptx"
232
253
  Provides-Extra: text
233
254
  Requires-Dist: aiofiles; extra == "text"
234
255
  Provides-Extra: csv
@@ -242,6 +263,8 @@ Requires-Dist: chonkie[st]; extra == "chonkie"
242
263
  Requires-Dist: chonkie; extra == "chonkie"
243
264
  Provides-Extra: agui
244
265
  Requires-Dist: ag-ui-protocol; extra == "agui"
266
+ Provides-Extra: a2a
267
+ Requires-Dist: a2a-sdk; extra == "a2a"
245
268
  Provides-Extra: huggingface
246
269
  Requires-Dist: huggingface-hub; extra == "huggingface"
247
270
  Provides-Extra: performance
@@ -262,7 +285,6 @@ Requires-Dist: agno[anthropic]; extra == "models"
262
285
  Requires-Dist: agno[azure]; extra == "models"
263
286
  Requires-Dist: agno[cerebras]; extra == "models"
264
287
  Requires-Dist: agno[cohere]; extra == "models"
265
- Requires-Dist: agno[infinity]; extra == "models"
266
288
  Requires-Dist: agno[google]; extra == "models"
267
289
  Requires-Dist: agno[groq]; extra == "models"
268
290
  Requires-Dist: agno[ibm]; extra == "models"
@@ -284,6 +306,7 @@ Requires-Dist: agno[duckdb]; extra == "tools"
284
306
  Requires-Dist: agno[newspaper]; extra == "tools"
285
307
  Requires-Dist: agno[youtube]; extra == "tools"
286
308
  Requires-Dist: agno[firecrawl]; extra == "tools"
309
+ Requires-Dist: agno[tavily]; extra == "tools"
287
310
  Requires-Dist: agno[crawl4ai]; extra == "tools"
288
311
  Requires-Dist: agno[github]; extra == "tools"
289
312
  Requires-Dist: agno[gmail]; extra == "tools"
@@ -298,19 +321,25 @@ Requires-Dist: agno[mcp]; extra == "tools"
298
321
  Requires-Dist: agno[browserbase]; extra == "tools"
299
322
  Requires-Dist: agno[agentql]; extra == "tools"
300
323
  Requires-Dist: agno[opencv]; extra == "tools"
324
+ Requires-Dist: agno[parallel]; extra == "tools"
325
+ Requires-Dist: agno[scrapegraph]; extra == "tools"
301
326
  Requires-Dist: agno[valyu]; extra == "tools"
302
327
  Requires-Dist: agno[confluence]; extra == "tools"
328
+ Requires-Dist: agno[notion]; extra == "tools"
303
329
  Requires-Dist: agno[oxylabs]; extra == "tools"
304
330
  Requires-Dist: agno[zep]; extra == "tools"
305
331
  Requires-Dist: agno[mem0]; extra == "tools"
306
332
  Requires-Dist: agno[memori]; extra == "tools"
307
333
  Requires-Dist: agno[google_bigquery]; extra == "tools"
308
334
  Requires-Dist: agno[psycopg]; extra == "tools"
335
+ Requires-Dist: agno[reportlab]; extra == "tools"
309
336
  Requires-Dist: agno[trafilatura]; extra == "tools"
310
337
  Requires-Dist: agno[neo4j]; extra == "tools"
311
338
  Provides-Extra: storage
312
339
  Requires-Dist: agno[sql]; extra == "storage"
313
340
  Requires-Dist: agno[postgres]; extra == "storage"
341
+ Requires-Dist: agno[async_postgres]; extra == "storage"
342
+ Requires-Dist: agno[async_mongo]; extra == "storage"
314
343
  Requires-Dist: agno[sqlite]; extra == "storage"
315
344
  Requires-Dist: agno[gcs]; extra == "storage"
316
345
  Requires-Dist: agno[firestore]; extra == "storage"
@@ -333,12 +362,14 @@ Requires-Dist: agno[upstash]; extra == "vectordbs"
333
362
  Provides-Extra: knowledge
334
363
  Requires-Dist: agno[pdf]; extra == "knowledge"
335
364
  Requires-Dist: agno[docx]; extra == "knowledge"
365
+ Requires-Dist: agno[pptx]; extra == "knowledge"
336
366
  Requires-Dist: agno[text]; extra == "knowledge"
337
367
  Requires-Dist: agno[csv]; extra == "knowledge"
338
368
  Requires-Dist: agno[markdown]; extra == "knowledge"
339
369
  Requires-Dist: agno[chonkie]; extra == "knowledge"
340
370
  Provides-Extra: embedders
341
371
  Requires-Dist: agno[huggingface]; extra == "embedders"
372
+ Requires-Dist: agno[vllm]; extra == "embedders"
342
373
  Provides-Extra: tests
343
374
  Requires-Dist: agno[dev]; extra == "tests"
344
375
  Requires-Dist: agno[models]; extra == "tests"
@@ -355,7 +386,7 @@ Requires-Dist: build; extra == "tests"
355
386
  Dynamic: license-file
356
387
 
357
388
  <div align="center" id="top">
358
- <a href="https://docs.agno.com">
389
+ <a href="https://agno.com">
359
390
  <picture>
360
391
  <source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
361
392
  <source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
@@ -363,61 +394,131 @@ Dynamic: license-file
363
394
  </picture>
364
395
  </a>
365
396
  </div>
397
+
366
398
  <div align="center">
367
- <a href="https://docs.agno.com">📚 Documentation</a> &nbsp;|&nbsp;
368
- <a href="https://docs.agno.com/examples/introduction">💡 Examples</a> &nbsp;|&nbsp;
369
- <a href="https://github.com/agno-agi/agno/stargazers">🌟 Star Us</a>
399
+ <a href="https://docs.agno.com">Documentation</a>
400
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
401
+ <a href="https://docs.agno.com/examples/introduction">Examples</a>
402
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
403
+ <a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
404
+ <br />
370
405
  </div>
371
406
 
372
407
  ## What is Agno?
373
408
 
374
- [Agno](https://docs.agno.com) is a high-performance runtime for multi-agent systems. Use it to build, run and manage secure multi-agent systems in your cloud.
409
+ Agno is a multi-agent framework, runtime and control plane. Built for speed, privacy, and scale.
410
+
411
+ It provides a rich set of tools for building:
412
+
413
+ - **Agents** with memory, knowledge, session management, and advanced features like human-in-the-loop, guardrails, dynamic context management and best-in-class MCP support.
414
+ - **Multi-Agent Teams** that operate autonomously under a team leader that maintains shared state and context. Perfect for use cases where the scope exceeds beyond a single agent.
415
+ - **Step-based Workflows** for controlled, deterministic execution. Steps can be Agents, Teams, or regular python functions that run sequentially, in parallel, in loops, branches, or conditionally.
416
+
417
+ Agno also provides a ready-to-use FastAPI app (called the AgentOS) for serving your agents, teams and workflows in production. Stateless, horizontally scalable and designed for scale, the AgentOS gives you major head start in building your AI product.
418
+
419
+ ## Getting started
420
+
421
+ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introduction/quickstart) to build your first Agent and chat with it using the AgentOS UI.
422
+
423
+ After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
424
+
425
+ ## Documentation, Community & More Examples
426
+
427
+ - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
428
+ - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
429
+ - Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
430
+ - Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
375
431
 
376
- Agno gives you the fastest framework for building agents with session management, memory, knowledge, human in the loop and MCP support. You can put agents together as an autonomous multi-agent team, or build step-based agentic workflows for full control over complex multi-step processes.
432
+ ## Example
377
433
 
378
- In 10 lines of code, we can build an Agent that will fetch the top stories from HackerNews and summarize them.
434
+ Here’s an example of an Agent that connects to an MCP server, manages conversation state in a database, is served using a FastAPI application that you can chat with using the [AgentOS UI](https://os.agno.com).
379
435
 
380
- ```python hackernews_agent.py
436
+ ```python agno_agent.py
381
437
  from agno.agent import Agent
438
+ from agno.db.sqlite import SqliteDb
382
439
  from agno.models.anthropic import Claude
383
- from agno.tools.hackernews import HackerNewsTools
384
-
385
- agent = Agent(
386
- model=Claude(id="claude-sonnet-4-0"),
387
- tools=[HackerNewsTools()],
440
+ from agno.os import AgentOS
441
+ from agno.tools.mcp import MCPTools
442
+
443
+ # ************* Create Agent *************
444
+ agno_agent = Agent(
445
+ name="Agno Agent",
446
+ model=Claude(id="claude-sonnet-4-5"),
447
+ # Add a database to the Agent
448
+ db=SqliteDb(db_file="agno.db"),
449
+ # Add the Agno MCP server to the Agent
450
+ tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
451
+ # Add the previous session history to the context
452
+ add_history_to_context=True,
388
453
  markdown=True,
389
454
  )
390
- agent.print_response("Summarize the top 5 stories on hackernews", stream=True)
455
+
456
+
457
+ # ************* Create AgentOS *************
458
+ agent_os = AgentOS(agents=[agno_agent])
459
+ # Get the FastAPI app for the AgentOS
460
+ app = agent_os.get_app()
461
+
462
+ # ************* Run AgentOS *************
463
+ if __name__ == "__main__":
464
+ agent_os.serve(app="agno_agent:app", reload=True)
391
465
  ```
392
466
 
393
- But the real advantage of Agno is its [AgentOS](https://docs.agno.com/agent-os/introduction) runtime:
467
+ ## AgentOS - Production Runtime for Multi-Agent Systems
394
468
 
395
- 1. You get a pre-built FastAPI app for running your agentic system, meaning you start building your product on day one. This is a remarkable advantage over other solutions or rolling your own.
396
- 2. You also get a control plane which connects directly to your AgentOS for testing, monitoring and managing your system. This gives you unmatched visibility and control over your system.
397
- 3. Your AgentOS runs in your cloud and you get complete data privacy because no data ever leaves your system. This is incredible for security conscious enterprises that can't send traces to external services.
469
+ Building Agents is easy, running them is hard, and that's where the AgentOS comes in. AgentOS is a high-performance runtime for serving multi-agent systems in production. Key features include:
398
470
 
399
- For organizations building agents, Agno provides the complete solution. You get the fastest framework for building agents (speed of development and execution), a pre-built FastAPI app that lets you build your product on day one, and a control plane for managing your system.
471
+ 1. **Pre-built FastAPI app**: AgentOS ships with a ready-to-use FastAPI app for orchestrating your agents, teams, and workflows. This gives you a major head start in building your AI product.
400
472
 
401
- We bring a novel architecture that no other framework provides, your AgentOS runs securely in your cloud, and the control plane connects directly to it from your browser. You don't need to send data to external services or pay retention costs, you get complete privacy and control.
473
+ 2. **Integrated Control Plane**: The [AgentOS UI](https://os.agno.com) connects directly to your runtime, letting you test, monitor, and manage your system in real time, giving you unmatched control over your system.
402
474
 
403
- ## Getting started
475
+ 3. **Private by Design**: AgentOS runs entirely in your cloud, ensuring complete data privacy. No data ever leaves your system. This is ideal for security-conscious enterprises.
404
476
 
405
- If you're new to Agno, follow our [quickstart](https://docs.agno.com/introduction/quickstart) to build your first Agent and run it using the AgentOS.
477
+ Here's what the [AgentOS UI](https://os.agno.com) looks like in action:
406
478
 
407
- After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
479
+ https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
408
480
 
409
- ## Documentation, Community & More examples
481
+ ## The Complete Agentic Solution
410
482
 
411
- - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
412
- - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
413
- - Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
414
- - Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
483
+ For companies building agents, Agno provides the complete agentic solution:
484
+
485
+ - The fastest framework for building agents, multi-agent teams and agentic workflows.
486
+ - A ready-to-use FastAPI app that gets you building AI products on day one.
487
+ - A control plane for testing, monitoring and managing your system.
488
+
489
+ Agno brings a novel architecture that no other framework provides, your AgentOS runs securely in your cloud, and the control plane connects directly to it from your browser. You don't need to send data to any external services or pay retention costs, you get complete privacy and control.
490
+
491
+ ## Designed for Agent Engineering
492
+
493
+ Agno is an incredibly feature-rich framework, designed for Agent Engineering. Here are some key features:
415
494
 
416
- ## Setup your coding agent to use Agno
495
+ | **Category** | **Feature** | **Description** |
496
+ |---------------|-------------|-----------------|
497
+ | **Core Intelligence** | **Model Agnostic** | Works with any model provider so you can use your favorite LLMs. |
498
+ | | **Type Safe** | Enforce structured I/O through `input_schema` and `output_schema` for predictable, composable behavior. |
499
+ | | **Dynamic Context Engineering** | Inject variables, state, and retrieved data on the fly into context. Perfect for dependency-driven agents. |
500
+ | **Memory, Knowledge, and Persistence** | **Persistent Storage** | Give your Agents, Teams, and Workflows a database to persist session history, state, and messages. |
501
+ | | **User Memory** | Built-in memory system that allows Agents to recall user-specific context across sessions. |
502
+ | | **Agentic RAG** | Connect to 20+ vector stores (called **Knowledge** in Agno) with hybrid search + reranking out of the box. |
503
+ | | **Culture (Collective Memory)** | Shared knowledge that compounds across agents and time. |
504
+ | **Execution & Control** | **Human-in-the-Loop** | Native support for confirmations, manual overrides, and external tool execution. |
505
+ | | **Guardrails** | Built-in safeguards for validation, security, and prompt protection. |
506
+ | | **Agent Lifecycle Hooks** | Pre- and post-hooks to validate or transform inputs and outputs. |
507
+ | | **MCP Integration** | First-class support for the Model Context Protocol (MCP) to connect Agents with external systems. |
508
+ | | **Toolkits** | 100+ built-in toolkits with thousands of tools, ready for use across data, code, web, and enterprise APIs. |
509
+ | **Runtime & Evaluation** | **Runtime** | Pre-built FastAPI based runtime with SSE compatible endpoints, ready for production on day 1. |
510
+ | | **Control Plane (UI)** | Integrated interface to visualize, monitor, and debug agent activity in real time. |
511
+ | | **Natively Multimodal** | Agents can process and generate text, images, audio, video, and files. |
512
+ | | **Evals** | Measure your Agents' Accuracy, Performance, and Reliability. |
513
+ | **Security & Privacy** | **Private by Design** | Runs entirely in your cloud. The UI connects directly to your AgentOS from your browser, no data is ever sent externally. |
514
+ | | **Data Governance** | Your data lives securely in your Agent database, no external data sharing or vendor lock-in. |
515
+ | | **Access Control** | Role-based access (RBAC) and per-agent permissions to protect sensitive contexts and tools. |
417
516
 
418
- For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file.
517
+ Every part of Agno is built for real-world deployment where developer experience meets production performance.
419
518
 
420
- This file is built for AI systems to efficiently parse and reference our documentation.
519
+ ## Setup Your Coding Agent to Use Agno
520
+
521
+ For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file. This file is built for AI systems to efficiently parse and reference our documentation.
421
522
 
422
523
  ### IDE Integration
423
524
 
@@ -432,54 +533,77 @@ Now, Cursor will have access to the Agno documentation. You can do the same with
432
533
 
433
534
  ## Performance
434
535
 
435
- At Agno, we're obsessed with performance. Why? because even simple AI workflows can spawn thousands of Agents. Scale that to a modest number of users and performance becomes a bottleneck. Agno is designed for building highly performant agentic systems:
536
+ 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 because many tasks are long-running -- stateless, horizontal scalability is key for success.
537
+
538
+ At Agno, we optimize performance across 3 dimensions:
539
+
540
+ 1. **Agent performance:** We optimize static operations (instantiation, memory footprint) and runtime operations (tool calls, memory updates, history management).
541
+ 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.
542
+ 3. **Agent reliability and accuracy:** Monitored through evals, which we’ll explore later.
543
+
544
+ ### Agent Performance
545
+
546
+ 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):
436
547
 
437
- - Agent instantiation: ~3μs on average
438
- - Memory footprint: ~6.5Kib on average
548
+ - **Agent instantiation:** ~3μs on average
549
+ - **Memory footprint:** ~6.6Kib on average
439
550
 
440
- > Tested on an Apple M4 Mackbook Pro.
551
+ 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**.
441
552
 
442
- While an Agent's run-time is bottlenecked by inference, we must do everything possible to minimize execution time, reduce memory usage, and parallelize tool calls. These numbers may seem trivial at first, but our experience shows that they add up even at a reasonably small scale.
553
+ > [!NOTE]
554
+ > Run time performance is bottlenecked by inference and hard to benchmark accurately, so we focus on minimizing overhead, reducing memory usage, and parallelizing tool calls.
443
555
 
444
- ### Instantiation time
556
+ ### Instantiation Time
445
557
 
446
- Let's measure the time it takes for an Agent with 1 tool to start up. We'll run the evaluation 1000 times to get a baseline measurement.
558
+ 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.
447
559
 
448
- You should run the evaluation yourself on your own machine, please, do not take these results at face value.
560
+ > [!NOTE]
561
+ > The code for this benchmark is available [here](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance). You should run the evaluation yourself on your own machine, please, do not take these results at face value.
449
562
 
450
563
  ```shell
451
564
  # Setup virtual environment
452
565
  ./scripts/perf_setup.sh
453
566
  source .venvs/perfenv/bin/activate
454
- # OR Install dependencies manually
455
- # pip install openai agno langgraph langchain_openai
456
567
 
457
568
  # Agno
458
- python evals/performance/instantiation_with_tool.py
569
+ python cookbook/evals/performance/instantiate_agent_with_tool.py
459
570
 
460
571
  # LangGraph
461
- python evals/performance/other/langgraph_instantiation.py
572
+ python cookbook/evals/performance/comparison/langgraph_instantiation.py
573
+ # CrewAI
574
+ python cookbook/evals/performance/comparison/crewai_instantiation.py
575
+ # Pydantic AI
576
+ python cookbook/evals/performance/comparison/pydantic_ai_instantiation.py
462
577
  ```
463
578
 
464
- > The following evaluation is run on an Apple M4 Mackbook Pro. It also runs as a Github action on this repo.
579
+ 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.
465
580
 
466
- LangGraph is on the right, **let's start it first and give it a head start**.
581
+ https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
467
582
 
468
- Agno is on the left, notice how it finishes before LangGraph gets 1/2 way through the runtime measurement, and hasn't even started the memory measurement. That's how fast Agno is.
469
-
470
- https://github.com/user-attachments/assets/ba466d45-75dd-45ac-917b-0a56c5742e23
471
-
472
- ### Memory usage
583
+ ### Memory Usage
473
584
 
474
585
  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.
475
586
 
476
587
  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.
477
588
 
478
- ### Conclusion
589
+ ### Results
590
+
591
+ Taking Agno as the baseline, we can see that:
592
+
593
+ | Metric | Agno | Langgraph | PydanticAI | CrewAI |
594
+ | ------------------ | ---- | ----------- | ---------- | ---------- |
595
+ | **Time (seconds)** | 1× | 529× slower | 57× slower | 70× slower |
596
+ | **Memory (MiB)** | 1× | 24× higher | 4× higher | 10× higher |
597
+
598
+ Exact numbers from the benchmark:
479
599
 
480
- Agno agents are designed for performance and while we do share some benchmarks against other frameworks, we should be mindful that accuracy and reliability are more important than speed.
600
+ | Metric | Agno | Langgraph | PydanticAI | CrewAI |
601
+ | ------------------ | -------- | --------- | ---------- | -------- |
602
+ | **Time (seconds)** | 0.000003 | 0.001587 | 0.000170 | 0.000210 |
603
+ | **Memory (MiB)** | 0.006642 | 0.161435 | 0.028712 | 0.065652 |
481
604
 
482
- Given that each framework is different and we won't be able to tune their performance like we do with Agno, for future benchmarks we'll only be comparing against ourselves.
605
+ > [!NOTE]
606
+ > 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.
483
607
 
484
608
  ## Contributions
485
609