agno 2.3.19__tar.gz → 2.3.21__tar.gz

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 (637) hide show
  1. {agno-2.3.19 → agno-2.3.21}/PKG-INFO +60 -129
  2. agno-2.3.21/README.md +167 -0
  3. {agno-2.3.19 → agno-2.3.21}/agno/agent/agent.py +2466 -2048
  4. {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/utils.py +26 -3
  5. {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/utils.py +25 -10
  6. {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/utils.py +14 -2
  7. {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/utils.py +14 -2
  8. {agno-2.3.19 → agno-2.3.21}/agno/db/json/utils.py +14 -2
  9. {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/utils.py +13 -3
  10. {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/utils.py +13 -3
  11. {agno-2.3.19 → agno-2.3.21}/agno/db/redis/utils.py +26 -10
  12. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/memory.py +15 -19
  13. {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/utils.py +13 -3
  14. {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/utils.py +15 -3
  15. {agno-2.3.19 → agno-2.3.21}/agno/db/utils.py +22 -0
  16. {agno-2.3.19 → agno-2.3.21}/agno/eval/agent_as_judge.py +24 -14
  17. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/mistral.py +1 -1
  18. {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/chat.py +6 -0
  19. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/evals.py +0 -9
  20. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/utils.py +6 -6
  21. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/schemas.py +1 -1
  22. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/schemas.py +14 -1
  23. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/schemas.py +1 -1
  24. {agno-2.3.19 → agno-2.3.21}/agno/os/schema.py +11 -9
  25. agno-2.3.21/agno/run/__init__.py +4 -0
  26. {agno-2.3.19 → agno-2.3.21}/agno/run/agent.py +19 -19
  27. agno-2.3.21/agno/run/cancel.py +94 -0
  28. agno-2.3.21/agno/run/cancellation_management/__init__.py +9 -0
  29. agno-2.3.21/agno/run/cancellation_management/base.py +78 -0
  30. agno-2.3.21/agno/run/cancellation_management/in_memory_cancellation_manager.py +100 -0
  31. agno-2.3.21/agno/run/cancellation_management/redis_cancellation_manager.py +236 -0
  32. {agno-2.3.19 → agno-2.3.21}/agno/run/team.py +19 -19
  33. {agno-2.3.19 → agno-2.3.21}/agno/team/team.py +1217 -1136
  34. {agno-2.3.19 → agno-2.3.21}/agno/utils/response.py +1 -13
  35. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/__init__.py +1 -1
  36. {agno-2.3.19 → agno-2.3.21}/agno/workflow/workflow.py +23 -16
  37. {agno-2.3.19 → agno-2.3.21}/agno.egg-info/PKG-INFO +60 -129
  38. {agno-2.3.19 → agno-2.3.21}/agno.egg-info/SOURCES.txt +4 -0
  39. {agno-2.3.19 → agno-2.3.21}/agno.egg-info/requires.txt +1 -0
  40. {agno-2.3.19 → agno-2.3.21}/pyproject.toml +3 -2
  41. agno-2.3.19/README.md +0 -237
  42. agno-2.3.19/agno/run/__init__.py +0 -6
  43. agno-2.3.19/agno/run/cancel.py +0 -81
  44. {agno-2.3.19 → agno-2.3.21}/LICENSE +0 -0
  45. {agno-2.3.19 → agno-2.3.21}/agno/__init__.py +0 -0
  46. {agno-2.3.19 → agno-2.3.21}/agno/agent/__init__.py +0 -0
  47. {agno-2.3.19 → agno-2.3.21}/agno/agent/remote.py +0 -0
  48. {agno-2.3.19 → agno-2.3.21}/agno/api/__init__.py +0 -0
  49. {agno-2.3.19 → agno-2.3.21}/agno/api/agent.py +0 -0
  50. {agno-2.3.19 → agno-2.3.21}/agno/api/api.py +0 -0
  51. {agno-2.3.19 → agno-2.3.21}/agno/api/evals.py +0 -0
  52. {agno-2.3.19 → agno-2.3.21}/agno/api/os.py +0 -0
  53. {agno-2.3.19 → agno-2.3.21}/agno/api/routes.py +0 -0
  54. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/__init__.py +0 -0
  55. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/agent.py +0 -0
  56. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/evals.py +0 -0
  57. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/os.py +0 -0
  58. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/response.py +0 -0
  59. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/team.py +0 -0
  60. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/utils.py +0 -0
  61. {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/workflows.py +0 -0
  62. {agno-2.3.19 → agno-2.3.21}/agno/api/settings.py +0 -0
  63. {agno-2.3.19 → agno-2.3.21}/agno/api/team.py +0 -0
  64. {agno-2.3.19 → agno-2.3.21}/agno/api/workflow.py +0 -0
  65. {agno-2.3.19 → agno-2.3.21}/agno/client/__init__.py +0 -0
  66. {agno-2.3.19 → agno-2.3.21}/agno/client/os.py +0 -0
  67. {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/base.py +0 -0
  68. {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/__init__.py +0 -0
  69. {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/api_client.py +0 -0
  70. {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/bucket.py +0 -0
  71. {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/object.py +0 -0
  72. {agno-2.3.19 → agno-2.3.21}/agno/compression/__init__.py +0 -0
  73. {agno-2.3.19 → agno-2.3.21}/agno/compression/manager.py +0 -0
  74. {agno-2.3.19 → agno-2.3.21}/agno/culture/__init__.py +0 -0
  75. {agno-2.3.19 → agno-2.3.21}/agno/culture/manager.py +0 -0
  76. {agno-2.3.19 → agno-2.3.21}/agno/db/__init__.py +0 -0
  77. {agno-2.3.19 → agno-2.3.21}/agno/db/async_postgres/__init__.py +0 -0
  78. {agno-2.3.19 → agno-2.3.21}/agno/db/base.py +0 -0
  79. {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/__init__.py +0 -0
  80. {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/dynamo.py +0 -0
  81. {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/schemas.py +0 -0
  82. {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/__init__.py +0 -0
  83. {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/firestore.py +0 -0
  84. {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/schemas.py +0 -0
  85. {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/__init__.py +0 -0
  86. {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/gcs_json_db.py +0 -0
  87. {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/__init__.py +0 -0
  88. {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/in_memory_db.py +0 -0
  89. {agno-2.3.19 → agno-2.3.21}/agno/db/json/__init__.py +0 -0
  90. {agno-2.3.19 → agno-2.3.21}/agno/db/json/json_db.py +0 -0
  91. {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/__init__.py +0 -0
  92. {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/manager.py +0 -0
  93. {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/v1_to_v2.py +0 -0
  94. {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/versions/__init__.py +0 -0
  95. {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/versions/v2_3_0.py +0 -0
  96. {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/__init__.py +0 -0
  97. {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/async_mongo.py +0 -0
  98. {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/mongo.py +0 -0
  99. {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/schemas.py +0 -0
  100. {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/utils.py +0 -0
  101. {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/__init__.py +0 -0
  102. {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/async_mysql.py +0 -0
  103. {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/mysql.py +0 -0
  104. {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/schemas.py +0 -0
  105. {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/__init__.py +0 -0
  106. {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/async_postgres.py +0 -0
  107. {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/postgres.py +0 -0
  108. {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/schemas.py +0 -0
  109. {agno-2.3.19 → agno-2.3.21}/agno/db/redis/__init__.py +0 -0
  110. {agno-2.3.19 → agno-2.3.21}/agno/db/redis/redis.py +0 -0
  111. {agno-2.3.19 → agno-2.3.21}/agno/db/redis/schemas.py +0 -0
  112. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/__init__.py +0 -0
  113. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/culture.py +0 -0
  114. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/evals.py +0 -0
  115. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/knowledge.py +0 -0
  116. {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/metrics.py +0 -0
  117. {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/__init__.py +0 -0
  118. {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/schemas.py +0 -0
  119. {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/singlestore.py +0 -0
  120. {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/__init__.py +0 -0
  121. {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/async_sqlite.py +0 -0
  122. {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/schemas.py +0 -0
  123. {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/sqlite.py +0 -0
  124. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/__init__.py +0 -0
  125. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/metrics.py +0 -0
  126. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/models.py +0 -0
  127. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/queries.py +0 -0
  128. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/surrealdb.py +0 -0
  129. {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/utils.py +0 -0
  130. {agno-2.3.19 → agno-2.3.21}/agno/debug.py +0 -0
  131. {agno-2.3.19 → agno-2.3.21}/agno/eval/__init__.py +0 -0
  132. {agno-2.3.19 → agno-2.3.21}/agno/eval/accuracy.py +0 -0
  133. {agno-2.3.19 → agno-2.3.21}/agno/eval/base.py +0 -0
  134. {agno-2.3.19 → agno-2.3.21}/agno/eval/performance.py +0 -0
  135. {agno-2.3.19 → agno-2.3.21}/agno/eval/reliability.py +0 -0
  136. {agno-2.3.19 → agno-2.3.21}/agno/eval/utils.py +0 -0
  137. {agno-2.3.19 → agno-2.3.21}/agno/exceptions.py +0 -0
  138. {agno-2.3.19 → agno-2.3.21}/agno/filters.py +0 -0
  139. {agno-2.3.19 → agno-2.3.21}/agno/guardrails/__init__.py +0 -0
  140. {agno-2.3.19 → agno-2.3.21}/agno/guardrails/base.py +0 -0
  141. {agno-2.3.19 → agno-2.3.21}/agno/guardrails/openai.py +0 -0
  142. {agno-2.3.19 → agno-2.3.21}/agno/guardrails/pii.py +0 -0
  143. {agno-2.3.19 → agno-2.3.21}/agno/guardrails/prompt_injection.py +0 -0
  144. {agno-2.3.19 → agno-2.3.21}/agno/hooks/__init__.py +0 -0
  145. {agno-2.3.19 → agno-2.3.21}/agno/hooks/decorator.py +0 -0
  146. {agno-2.3.19 → agno-2.3.21}/agno/integrations/__init__.py +0 -0
  147. {agno-2.3.19 → agno-2.3.21}/agno/integrations/discord/__init__.py +0 -0
  148. {agno-2.3.19 → agno-2.3.21}/agno/integrations/discord/client.py +0 -0
  149. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/__init__.py +0 -0
  150. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/__init__.py +0 -0
  151. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/agentic.py +0 -0
  152. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/document.py +0 -0
  153. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/fixed.py +0 -0
  154. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/markdown.py +0 -0
  155. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/recursive.py +0 -0
  156. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/row.py +0 -0
  157. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/semantic.py +0 -0
  158. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/strategy.py +0 -0
  159. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/content.py +0 -0
  160. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/document/__init__.py +0 -0
  161. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/document/base.py +0 -0
  162. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/__init__.py +0 -0
  163. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/aws_bedrock.py +0 -0
  164. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/azure_openai.py +0 -0
  165. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/base.py +0 -0
  166. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/cohere.py +0 -0
  167. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/fastembed.py +0 -0
  168. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/fireworks.py +0 -0
  169. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/google.py +0 -0
  170. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/huggingface.py +0 -0
  171. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/jina.py +0 -0
  172. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/langdb.py +0 -0
  173. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/nebius.py +0 -0
  174. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/ollama.py +0 -0
  175. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/openai.py +0 -0
  176. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/sentence_transformer.py +0 -0
  177. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/together.py +0 -0
  178. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/vllm.py +0 -0
  179. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/voyageai.py +0 -0
  180. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/knowledge.py +0 -0
  181. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/__init__.py +0 -0
  182. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/arxiv_reader.py +0 -0
  183. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/base.py +0 -0
  184. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/csv_reader.py +0 -0
  185. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/docx_reader.py +0 -0
  186. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
  187. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/firecrawl_reader.py +0 -0
  188. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/json_reader.py +0 -0
  189. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/markdown_reader.py +0 -0
  190. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/pdf_reader.py +0 -0
  191. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/pptx_reader.py +0 -0
  192. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/reader_factory.py +0 -0
  193. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/s3_reader.py +0 -0
  194. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/tavily_reader.py +0 -0
  195. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/text_reader.py +0 -0
  196. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/web_search_reader.py +0 -0
  197. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/website_reader.py +0 -0
  198. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/wikipedia_reader.py +0 -0
  199. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/youtube_reader.py +0 -0
  200. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/remote_content/__init__.py +0 -0
  201. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/remote_content/remote_content.py +0 -0
  202. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/__init__.py +0 -0
  203. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/base.py +0 -0
  204. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/cohere.py +0 -0
  205. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/infinity.py +0 -0
  206. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/sentence_transformer.py +0 -0
  207. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/types.py +0 -0
  208. {agno-2.3.19 → agno-2.3.21}/agno/knowledge/utils.py +0 -0
  209. {agno-2.3.19 → agno-2.3.21}/agno/media.py +0 -0
  210. {agno-2.3.19 → agno-2.3.21}/agno/memory/__init__.py +0 -0
  211. {agno-2.3.19 → agno-2.3.21}/agno/memory/manager.py +0 -0
  212. {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/__init__.py +0 -0
  213. {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/base.py +0 -0
  214. {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/summarize.py +0 -0
  215. {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/types.py +0 -0
  216. {agno-2.3.19 → agno-2.3.21}/agno/models/__init__.py +0 -0
  217. {agno-2.3.19 → agno-2.3.21}/agno/models/aimlapi/__init__.py +0 -0
  218. {agno-2.3.19 → agno-2.3.21}/agno/models/aimlapi/aimlapi.py +0 -0
  219. {agno-2.3.19 → agno-2.3.21}/agno/models/anthropic/__init__.py +0 -0
  220. {agno-2.3.19 → agno-2.3.21}/agno/models/anthropic/claude.py +0 -0
  221. {agno-2.3.19 → agno-2.3.21}/agno/models/aws/__init__.py +0 -0
  222. {agno-2.3.19 → agno-2.3.21}/agno/models/aws/bedrock.py +0 -0
  223. {agno-2.3.19 → agno-2.3.21}/agno/models/aws/claude.py +0 -0
  224. {agno-2.3.19 → agno-2.3.21}/agno/models/azure/__init__.py +0 -0
  225. {agno-2.3.19 → agno-2.3.21}/agno/models/azure/ai_foundry.py +0 -0
  226. {agno-2.3.19 → agno-2.3.21}/agno/models/azure/openai_chat.py +0 -0
  227. {agno-2.3.19 → agno-2.3.21}/agno/models/base.py +0 -0
  228. {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/__init__.py +0 -0
  229. {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/cerebras.py +0 -0
  230. {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/cerebras_openai.py +0 -0
  231. {agno-2.3.19 → agno-2.3.21}/agno/models/cohere/__init__.py +0 -0
  232. {agno-2.3.19 → agno-2.3.21}/agno/models/cohere/chat.py +0 -0
  233. {agno-2.3.19 → agno-2.3.21}/agno/models/cometapi/__init__.py +0 -0
  234. {agno-2.3.19 → agno-2.3.21}/agno/models/cometapi/cometapi.py +0 -0
  235. {agno-2.3.19 → agno-2.3.21}/agno/models/dashscope/__init__.py +0 -0
  236. {agno-2.3.19 → agno-2.3.21}/agno/models/dashscope/dashscope.py +0 -0
  237. {agno-2.3.19 → agno-2.3.21}/agno/models/deepinfra/__init__.py +0 -0
  238. {agno-2.3.19 → agno-2.3.21}/agno/models/deepinfra/deepinfra.py +0 -0
  239. {agno-2.3.19 → agno-2.3.21}/agno/models/deepseek/__init__.py +0 -0
  240. {agno-2.3.19 → agno-2.3.21}/agno/models/deepseek/deepseek.py +0 -0
  241. {agno-2.3.19 → agno-2.3.21}/agno/models/defaults.py +0 -0
  242. {agno-2.3.19 → agno-2.3.21}/agno/models/fireworks/__init__.py +0 -0
  243. {agno-2.3.19 → agno-2.3.21}/agno/models/fireworks/fireworks.py +0 -0
  244. {agno-2.3.19 → agno-2.3.21}/agno/models/google/__init__.py +0 -0
  245. {agno-2.3.19 → agno-2.3.21}/agno/models/google/gemini.py +0 -0
  246. {agno-2.3.19 → agno-2.3.21}/agno/models/google/utils.py +0 -0
  247. {agno-2.3.19 → agno-2.3.21}/agno/models/groq/__init__.py +0 -0
  248. {agno-2.3.19 → agno-2.3.21}/agno/models/groq/groq.py +0 -0
  249. {agno-2.3.19 → agno-2.3.21}/agno/models/huggingface/__init__.py +0 -0
  250. {agno-2.3.19 → agno-2.3.21}/agno/models/huggingface/huggingface.py +0 -0
  251. {agno-2.3.19 → agno-2.3.21}/agno/models/ibm/__init__.py +0 -0
  252. {agno-2.3.19 → agno-2.3.21}/agno/models/ibm/watsonx.py +0 -0
  253. {agno-2.3.19 → agno-2.3.21}/agno/models/internlm/__init__.py +0 -0
  254. {agno-2.3.19 → agno-2.3.21}/agno/models/internlm/internlm.py +0 -0
  255. {agno-2.3.19 → agno-2.3.21}/agno/models/langdb/__init__.py +0 -0
  256. {agno-2.3.19 → agno-2.3.21}/agno/models/langdb/langdb.py +0 -0
  257. {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/__init__.py +0 -0
  258. {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/litellm_openai.py +0 -0
  259. {agno-2.3.19 → agno-2.3.21}/agno/models/llama_cpp/__init__.py +0 -0
  260. {agno-2.3.19 → agno-2.3.21}/agno/models/llama_cpp/llama_cpp.py +0 -0
  261. {agno-2.3.19 → agno-2.3.21}/agno/models/lmstudio/__init__.py +0 -0
  262. {agno-2.3.19 → agno-2.3.21}/agno/models/lmstudio/lmstudio.py +0 -0
  263. {agno-2.3.19 → agno-2.3.21}/agno/models/message.py +0 -0
  264. {agno-2.3.19 → agno-2.3.21}/agno/models/meta/__init__.py +0 -0
  265. {agno-2.3.19 → agno-2.3.21}/agno/models/meta/llama.py +0 -0
  266. {agno-2.3.19 → agno-2.3.21}/agno/models/meta/llama_openai.py +0 -0
  267. {agno-2.3.19 → agno-2.3.21}/agno/models/metrics.py +0 -0
  268. {agno-2.3.19 → agno-2.3.21}/agno/models/mistral/__init__.py +0 -0
  269. {agno-2.3.19 → agno-2.3.21}/agno/models/mistral/mistral.py +0 -0
  270. {agno-2.3.19 → agno-2.3.21}/agno/models/nebius/__init__.py +0 -0
  271. {agno-2.3.19 → agno-2.3.21}/agno/models/nebius/nebius.py +0 -0
  272. {agno-2.3.19 → agno-2.3.21}/agno/models/nexus/__init__.py +0 -0
  273. {agno-2.3.19 → agno-2.3.21}/agno/models/nexus/nexus.py +0 -0
  274. {agno-2.3.19 → agno-2.3.21}/agno/models/nvidia/__init__.py +0 -0
  275. {agno-2.3.19 → agno-2.3.21}/agno/models/nvidia/nvidia.py +0 -0
  276. {agno-2.3.19 → agno-2.3.21}/agno/models/ollama/__init__.py +0 -0
  277. {agno-2.3.19 → agno-2.3.21}/agno/models/ollama/chat.py +0 -0
  278. {agno-2.3.19 → agno-2.3.21}/agno/models/openai/__init__.py +0 -0
  279. {agno-2.3.19 → agno-2.3.21}/agno/models/openai/chat.py +0 -0
  280. {agno-2.3.19 → agno-2.3.21}/agno/models/openai/like.py +0 -0
  281. {agno-2.3.19 → agno-2.3.21}/agno/models/openai/responses.py +0 -0
  282. {agno-2.3.19 → agno-2.3.21}/agno/models/openrouter/__init__.py +0 -0
  283. {agno-2.3.19 → agno-2.3.21}/agno/models/openrouter/openrouter.py +0 -0
  284. {agno-2.3.19 → agno-2.3.21}/agno/models/perplexity/__init__.py +0 -0
  285. {agno-2.3.19 → agno-2.3.21}/agno/models/perplexity/perplexity.py +0 -0
  286. {agno-2.3.19 → agno-2.3.21}/agno/models/portkey/__init__.py +0 -0
  287. {agno-2.3.19 → agno-2.3.21}/agno/models/portkey/portkey.py +0 -0
  288. {agno-2.3.19 → agno-2.3.21}/agno/models/requesty/__init__.py +0 -0
  289. {agno-2.3.19 → agno-2.3.21}/agno/models/requesty/requesty.py +0 -0
  290. {agno-2.3.19 → agno-2.3.21}/agno/models/response.py +0 -0
  291. {agno-2.3.19 → agno-2.3.21}/agno/models/sambanova/__init__.py +0 -0
  292. {agno-2.3.19 → agno-2.3.21}/agno/models/sambanova/sambanova.py +0 -0
  293. {agno-2.3.19 → agno-2.3.21}/agno/models/siliconflow/__init__.py +0 -0
  294. {agno-2.3.19 → agno-2.3.21}/agno/models/siliconflow/siliconflow.py +0 -0
  295. {agno-2.3.19 → agno-2.3.21}/agno/models/together/__init__.py +0 -0
  296. {agno-2.3.19 → agno-2.3.21}/agno/models/together/together.py +0 -0
  297. {agno-2.3.19 → agno-2.3.21}/agno/models/utils.py +0 -0
  298. {agno-2.3.19 → agno-2.3.21}/agno/models/vercel/__init__.py +0 -0
  299. {agno-2.3.19 → agno-2.3.21}/agno/models/vercel/v0.py +0 -0
  300. {agno-2.3.19 → agno-2.3.21}/agno/models/vertexai/__init__.py +0 -0
  301. {agno-2.3.19 → agno-2.3.21}/agno/models/vertexai/claude.py +0 -0
  302. {agno-2.3.19 → agno-2.3.21}/agno/models/vllm/__init__.py +0 -0
  303. {agno-2.3.19 → agno-2.3.21}/agno/models/vllm/vllm.py +0 -0
  304. {agno-2.3.19 → agno-2.3.21}/agno/models/xai/__init__.py +0 -0
  305. {agno-2.3.19 → agno-2.3.21}/agno/models/xai/xai.py +0 -0
  306. {agno-2.3.19 → agno-2.3.21}/agno/os/__init__.py +0 -0
  307. {agno-2.3.19 → agno-2.3.21}/agno/os/app.py +0 -0
  308. {agno-2.3.19 → agno-2.3.21}/agno/os/auth.py +0 -0
  309. {agno-2.3.19 → agno-2.3.21}/agno/os/config.py +0 -0
  310. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/__init__.py +0 -0
  311. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/__init__.py +0 -0
  312. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/a2a.py +0 -0
  313. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/router.py +0 -0
  314. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/utils.py +0 -0
  315. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/__init__.py +0 -0
  316. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/agui.py +0 -0
  317. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/router.py +0 -0
  318. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/utils.py +0 -0
  319. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/base.py +0 -0
  320. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/__init__.py +0 -0
  321. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/router.py +0 -0
  322. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/security.py +0 -0
  323. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/slack.py +0 -0
  324. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/__init__.py +0 -0
  325. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/router.py +0 -0
  326. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/security.py +0 -0
  327. {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
  328. {agno-2.3.19 → agno-2.3.21}/agno/os/managers.py +0 -0
  329. {agno-2.3.19 → agno-2.3.21}/agno/os/mcp.py +0 -0
  330. {agno-2.3.19 → agno-2.3.21}/agno/os/middleware/__init__.py +0 -0
  331. {agno-2.3.19 → agno-2.3.21}/agno/os/middleware/jwt.py +0 -0
  332. {agno-2.3.19 → agno-2.3.21}/agno/os/router.py +0 -0
  333. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/__init__.py +0 -0
  334. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/__init__.py +0 -0
  335. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/router.py +0 -0
  336. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/schema.py +0 -0
  337. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/database.py +0 -0
  338. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/__init__.py +0 -0
  339. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/schemas.py +0 -0
  340. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/health.py +0 -0
  341. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/home.py +0 -0
  342. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/__init__.py +0 -0
  343. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/knowledge.py +0 -0
  344. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/__init__.py +0 -0
  345. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/memory.py +0 -0
  346. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/__init__.py +0 -0
  347. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/metrics.py +0 -0
  348. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/session/__init__.py +0 -0
  349. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/session/session.py +0 -0
  350. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/__init__.py +0 -0
  351. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/router.py +0 -0
  352. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/schema.py +0 -0
  353. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/__init__.py +0 -0
  354. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/schemas.py +0 -0
  355. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/traces.py +0 -0
  356. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/__init__.py +0 -0
  357. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/router.py +0 -0
  358. {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/schema.py +0 -0
  359. {agno-2.3.19 → agno-2.3.21}/agno/os/scopes.py +0 -0
  360. {agno-2.3.19 → agno-2.3.21}/agno/os/settings.py +0 -0
  361. {agno-2.3.19 → agno-2.3.21}/agno/os/utils.py +0 -0
  362. {agno-2.3.19 → agno-2.3.21}/agno/py.typed +0 -0
  363. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/__init__.py +0 -0
  364. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/anthropic.py +0 -0
  365. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/azure_ai_foundry.py +0 -0
  366. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/deepseek.py +0 -0
  367. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/default.py +0 -0
  368. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/gemini.py +0 -0
  369. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/groq.py +0 -0
  370. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/helpers.py +0 -0
  371. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/manager.py +0 -0
  372. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/ollama.py +0 -0
  373. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/openai.py +0 -0
  374. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/step.py +0 -0
  375. {agno-2.3.19 → agno-2.3.21}/agno/reasoning/vertexai.py +0 -0
  376. {agno-2.3.19 → agno-2.3.21}/agno/remote/__init__.py +0 -0
  377. {agno-2.3.19 → agno-2.3.21}/agno/remote/base.py +0 -0
  378. {agno-2.3.19 → agno-2.3.21}/agno/run/base.py +0 -0
  379. {agno-2.3.19 → agno-2.3.21}/agno/run/messages.py +0 -0
  380. {agno-2.3.19 → agno-2.3.21}/agno/run/requirement.py +0 -0
  381. {agno-2.3.19 → agno-2.3.21}/agno/run/workflow.py +0 -0
  382. {agno-2.3.19 → agno-2.3.21}/agno/session/__init__.py +0 -0
  383. {agno-2.3.19 → agno-2.3.21}/agno/session/agent.py +0 -0
  384. {agno-2.3.19 → agno-2.3.21}/agno/session/summary.py +0 -0
  385. {agno-2.3.19 → agno-2.3.21}/agno/session/team.py +0 -0
  386. {agno-2.3.19 → agno-2.3.21}/agno/session/workflow.py +0 -0
  387. {agno-2.3.19 → agno-2.3.21}/agno/table.py +0 -0
  388. {agno-2.3.19 → agno-2.3.21}/agno/team/__init__.py +0 -0
  389. {agno-2.3.19 → agno-2.3.21}/agno/team/remote.py +0 -0
  390. {agno-2.3.19 → agno-2.3.21}/agno/tools/__init__.py +0 -0
  391. {agno-2.3.19 → agno-2.3.21}/agno/tools/agentql.py +0 -0
  392. {agno-2.3.19 → agno-2.3.21}/agno/tools/airflow.py +0 -0
  393. {agno-2.3.19 → agno-2.3.21}/agno/tools/api.py +0 -0
  394. {agno-2.3.19 → agno-2.3.21}/agno/tools/apify.py +0 -0
  395. {agno-2.3.19 → agno-2.3.21}/agno/tools/arxiv.py +0 -0
  396. {agno-2.3.19 → agno-2.3.21}/agno/tools/aws_lambda.py +0 -0
  397. {agno-2.3.19 → agno-2.3.21}/agno/tools/aws_ses.py +0 -0
  398. {agno-2.3.19 → agno-2.3.21}/agno/tools/baidusearch.py +0 -0
  399. {agno-2.3.19 → agno-2.3.21}/agno/tools/bitbucket.py +0 -0
  400. {agno-2.3.19 → agno-2.3.21}/agno/tools/brandfetch.py +0 -0
  401. {agno-2.3.19 → agno-2.3.21}/agno/tools/bravesearch.py +0 -0
  402. {agno-2.3.19 → agno-2.3.21}/agno/tools/brightdata.py +0 -0
  403. {agno-2.3.19 → agno-2.3.21}/agno/tools/browserbase.py +0 -0
  404. {agno-2.3.19 → agno-2.3.21}/agno/tools/calcom.py +0 -0
  405. {agno-2.3.19 → agno-2.3.21}/agno/tools/calculator.py +0 -0
  406. {agno-2.3.19 → agno-2.3.21}/agno/tools/cartesia.py +0 -0
  407. {agno-2.3.19 → agno-2.3.21}/agno/tools/clickup.py +0 -0
  408. {agno-2.3.19 → agno-2.3.21}/agno/tools/confluence.py +0 -0
  409. {agno-2.3.19 → agno-2.3.21}/agno/tools/crawl4ai.py +0 -0
  410. {agno-2.3.19 → agno-2.3.21}/agno/tools/csv_toolkit.py +0 -0
  411. {agno-2.3.19 → agno-2.3.21}/agno/tools/dalle.py +0 -0
  412. {agno-2.3.19 → agno-2.3.21}/agno/tools/daytona.py +0 -0
  413. {agno-2.3.19 → agno-2.3.21}/agno/tools/decorator.py +0 -0
  414. {agno-2.3.19 → agno-2.3.21}/agno/tools/desi_vocal.py +0 -0
  415. {agno-2.3.19 → agno-2.3.21}/agno/tools/discord.py +0 -0
  416. {agno-2.3.19 → agno-2.3.21}/agno/tools/docker.py +0 -0
  417. {agno-2.3.19 → agno-2.3.21}/agno/tools/duckdb.py +0 -0
  418. {agno-2.3.19 → agno-2.3.21}/agno/tools/duckduckgo.py +0 -0
  419. {agno-2.3.19 → agno-2.3.21}/agno/tools/e2b.py +0 -0
  420. {agno-2.3.19 → agno-2.3.21}/agno/tools/eleven_labs.py +0 -0
  421. {agno-2.3.19 → agno-2.3.21}/agno/tools/email.py +0 -0
  422. {agno-2.3.19 → agno-2.3.21}/agno/tools/evm.py +0 -0
  423. {agno-2.3.19 → agno-2.3.21}/agno/tools/exa.py +0 -0
  424. {agno-2.3.19 → agno-2.3.21}/agno/tools/fal.py +0 -0
  425. {agno-2.3.19 → agno-2.3.21}/agno/tools/file.py +0 -0
  426. {agno-2.3.19 → agno-2.3.21}/agno/tools/file_generation.py +0 -0
  427. {agno-2.3.19 → agno-2.3.21}/agno/tools/financial_datasets.py +0 -0
  428. {agno-2.3.19 → agno-2.3.21}/agno/tools/firecrawl.py +0 -0
  429. {agno-2.3.19 → agno-2.3.21}/agno/tools/function.py +0 -0
  430. {agno-2.3.19 → agno-2.3.21}/agno/tools/giphy.py +0 -0
  431. {agno-2.3.19 → agno-2.3.21}/agno/tools/github.py +0 -0
  432. {agno-2.3.19 → agno-2.3.21}/agno/tools/gmail.py +0 -0
  433. {agno-2.3.19 → agno-2.3.21}/agno/tools/google_bigquery.py +0 -0
  434. {agno-2.3.19 → agno-2.3.21}/agno/tools/google_drive.py +0 -0
  435. {agno-2.3.19 → agno-2.3.21}/agno/tools/google_maps.py +0 -0
  436. {agno-2.3.19 → agno-2.3.21}/agno/tools/googlecalendar.py +0 -0
  437. {agno-2.3.19 → agno-2.3.21}/agno/tools/googlesheets.py +0 -0
  438. {agno-2.3.19 → agno-2.3.21}/agno/tools/hackernews.py +0 -0
  439. {agno-2.3.19 → agno-2.3.21}/agno/tools/jina.py +0 -0
  440. {agno-2.3.19 → agno-2.3.21}/agno/tools/jira.py +0 -0
  441. {agno-2.3.19 → agno-2.3.21}/agno/tools/knowledge.py +0 -0
  442. {agno-2.3.19 → agno-2.3.21}/agno/tools/linear.py +0 -0
  443. {agno-2.3.19 → agno-2.3.21}/agno/tools/linkup.py +0 -0
  444. {agno-2.3.19 → agno-2.3.21}/agno/tools/local_file_system.py +0 -0
  445. {agno-2.3.19 → agno-2.3.21}/agno/tools/lumalab.py +0 -0
  446. {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/__init__.py +0 -0
  447. {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/mcp.py +0 -0
  448. {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/multi_mcp.py +0 -0
  449. {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/params.py +0 -0
  450. {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp_toolbox.py +0 -0
  451. {agno-2.3.19 → agno-2.3.21}/agno/tools/mem0.py +0 -0
  452. {agno-2.3.19 → agno-2.3.21}/agno/tools/memory.py +0 -0
  453. {agno-2.3.19 → agno-2.3.21}/agno/tools/mlx_transcribe.py +0 -0
  454. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/__init__.py +0 -0
  455. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/azure_openai.py +0 -0
  456. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/gemini.py +0 -0
  457. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/groq.py +0 -0
  458. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/morph.py +0 -0
  459. {agno-2.3.19 → agno-2.3.21}/agno/tools/models/nebius.py +0 -0
  460. {agno-2.3.19 → agno-2.3.21}/agno/tools/models_labs.py +0 -0
  461. {agno-2.3.19 → agno-2.3.21}/agno/tools/moviepy_video.py +0 -0
  462. {agno-2.3.19 → agno-2.3.21}/agno/tools/nano_banana.py +0 -0
  463. {agno-2.3.19 → agno-2.3.21}/agno/tools/neo4j.py +0 -0
  464. {agno-2.3.19 → agno-2.3.21}/agno/tools/newspaper.py +0 -0
  465. {agno-2.3.19 → agno-2.3.21}/agno/tools/newspaper4k.py +0 -0
  466. {agno-2.3.19 → agno-2.3.21}/agno/tools/notion.py +0 -0
  467. {agno-2.3.19 → agno-2.3.21}/agno/tools/openai.py +0 -0
  468. {agno-2.3.19 → agno-2.3.21}/agno/tools/openbb.py +0 -0
  469. {agno-2.3.19 → agno-2.3.21}/agno/tools/opencv.py +0 -0
  470. {agno-2.3.19 → agno-2.3.21}/agno/tools/openweather.py +0 -0
  471. {agno-2.3.19 → agno-2.3.21}/agno/tools/oxylabs.py +0 -0
  472. {agno-2.3.19 → agno-2.3.21}/agno/tools/pandas.py +0 -0
  473. {agno-2.3.19 → agno-2.3.21}/agno/tools/parallel.py +0 -0
  474. {agno-2.3.19 → agno-2.3.21}/agno/tools/postgres.py +0 -0
  475. {agno-2.3.19 → agno-2.3.21}/agno/tools/pubmed.py +0 -0
  476. {agno-2.3.19 → agno-2.3.21}/agno/tools/python.py +0 -0
  477. {agno-2.3.19 → agno-2.3.21}/agno/tools/reasoning.py +0 -0
  478. {agno-2.3.19 → agno-2.3.21}/agno/tools/reddit.py +0 -0
  479. {agno-2.3.19 → agno-2.3.21}/agno/tools/redshift.py +0 -0
  480. {agno-2.3.19 → agno-2.3.21}/agno/tools/replicate.py +0 -0
  481. {agno-2.3.19 → agno-2.3.21}/agno/tools/resend.py +0 -0
  482. {agno-2.3.19 → agno-2.3.21}/agno/tools/scrapegraph.py +0 -0
  483. {agno-2.3.19 → agno-2.3.21}/agno/tools/searxng.py +0 -0
  484. {agno-2.3.19 → agno-2.3.21}/agno/tools/serpapi.py +0 -0
  485. {agno-2.3.19 → agno-2.3.21}/agno/tools/serper.py +0 -0
  486. {agno-2.3.19 → agno-2.3.21}/agno/tools/shell.py +0 -0
  487. {agno-2.3.19 → agno-2.3.21}/agno/tools/shopify.py +0 -0
  488. {agno-2.3.19 → agno-2.3.21}/agno/tools/slack.py +0 -0
  489. {agno-2.3.19 → agno-2.3.21}/agno/tools/sleep.py +0 -0
  490. {agno-2.3.19 → agno-2.3.21}/agno/tools/spider.py +0 -0
  491. {agno-2.3.19 → agno-2.3.21}/agno/tools/spotify.py +0 -0
  492. {agno-2.3.19 → agno-2.3.21}/agno/tools/sql.py +0 -0
  493. {agno-2.3.19 → agno-2.3.21}/agno/tools/streamlit/__init__.py +0 -0
  494. {agno-2.3.19 → agno-2.3.21}/agno/tools/streamlit/components.py +0 -0
  495. {agno-2.3.19 → agno-2.3.21}/agno/tools/tavily.py +0 -0
  496. {agno-2.3.19 → agno-2.3.21}/agno/tools/telegram.py +0 -0
  497. {agno-2.3.19 → agno-2.3.21}/agno/tools/todoist.py +0 -0
  498. {agno-2.3.19 → agno-2.3.21}/agno/tools/tool_registry.py +0 -0
  499. {agno-2.3.19 → agno-2.3.21}/agno/tools/toolkit.py +0 -0
  500. {agno-2.3.19 → agno-2.3.21}/agno/tools/trafilatura.py +0 -0
  501. {agno-2.3.19 → agno-2.3.21}/agno/tools/trello.py +0 -0
  502. {agno-2.3.19 → agno-2.3.21}/agno/tools/twilio.py +0 -0
  503. {agno-2.3.19 → agno-2.3.21}/agno/tools/user_control_flow.py +0 -0
  504. {agno-2.3.19 → agno-2.3.21}/agno/tools/valyu.py +0 -0
  505. {agno-2.3.19 → agno-2.3.21}/agno/tools/visualization.py +0 -0
  506. {agno-2.3.19 → agno-2.3.21}/agno/tools/webbrowser.py +0 -0
  507. {agno-2.3.19 → agno-2.3.21}/agno/tools/webex.py +0 -0
  508. {agno-2.3.19 → agno-2.3.21}/agno/tools/website.py +0 -0
  509. {agno-2.3.19 → agno-2.3.21}/agno/tools/webtools.py +0 -0
  510. {agno-2.3.19 → agno-2.3.21}/agno/tools/whatsapp.py +0 -0
  511. {agno-2.3.19 → agno-2.3.21}/agno/tools/wikipedia.py +0 -0
  512. {agno-2.3.19 → agno-2.3.21}/agno/tools/workflow.py +0 -0
  513. {agno-2.3.19 → agno-2.3.21}/agno/tools/x.py +0 -0
  514. {agno-2.3.19 → agno-2.3.21}/agno/tools/yfinance.py +0 -0
  515. {agno-2.3.19 → agno-2.3.21}/agno/tools/youtube.py +0 -0
  516. {agno-2.3.19 → agno-2.3.21}/agno/tools/zendesk.py +0 -0
  517. {agno-2.3.19 → agno-2.3.21}/agno/tools/zep.py +0 -0
  518. {agno-2.3.19 → agno-2.3.21}/agno/tools/zoom.py +0 -0
  519. {agno-2.3.19 → agno-2.3.21}/agno/tracing/__init__.py +0 -0
  520. {agno-2.3.19 → agno-2.3.21}/agno/tracing/exporter.py +0 -0
  521. {agno-2.3.19 → agno-2.3.21}/agno/tracing/schemas.py +0 -0
  522. {agno-2.3.19 → agno-2.3.21}/agno/tracing/setup.py +0 -0
  523. {agno-2.3.19 → agno-2.3.21}/agno/utils/__init__.py +0 -0
  524. {agno-2.3.19 → agno-2.3.21}/agno/utils/agent.py +0 -0
  525. {agno-2.3.19 → agno-2.3.21}/agno/utils/audio.py +0 -0
  526. {agno-2.3.19 → agno-2.3.21}/agno/utils/certs.py +0 -0
  527. {agno-2.3.19 → agno-2.3.21}/agno/utils/code_execution.py +0 -0
  528. {agno-2.3.19 → agno-2.3.21}/agno/utils/common.py +0 -0
  529. {agno-2.3.19 → agno-2.3.21}/agno/utils/cryptography.py +0 -0
  530. {agno-2.3.19 → agno-2.3.21}/agno/utils/dttm.py +0 -0
  531. {agno-2.3.19 → agno-2.3.21}/agno/utils/enum.py +0 -0
  532. {agno-2.3.19 → agno-2.3.21}/agno/utils/env.py +0 -0
  533. {agno-2.3.19 → agno-2.3.21}/agno/utils/events.py +0 -0
  534. {agno-2.3.19 → agno-2.3.21}/agno/utils/format_str.py +0 -0
  535. {agno-2.3.19 → agno-2.3.21}/agno/utils/functions.py +0 -0
  536. {agno-2.3.19 → agno-2.3.21}/agno/utils/gemini.py +0 -0
  537. {agno-2.3.19 → agno-2.3.21}/agno/utils/hooks.py +0 -0
  538. {agno-2.3.19 → agno-2.3.21}/agno/utils/http.py +0 -0
  539. {agno-2.3.19 → agno-2.3.21}/agno/utils/json_schema.py +0 -0
  540. {agno-2.3.19 → agno-2.3.21}/agno/utils/knowledge.py +0 -0
  541. {agno-2.3.19 → agno-2.3.21}/agno/utils/location.py +0 -0
  542. {agno-2.3.19 → agno-2.3.21}/agno/utils/log.py +0 -0
  543. {agno-2.3.19 → agno-2.3.21}/agno/utils/mcp.py +0 -0
  544. {agno-2.3.19 → agno-2.3.21}/agno/utils/media.py +0 -0
  545. {agno-2.3.19 → agno-2.3.21}/agno/utils/merge_dict.py +0 -0
  546. {agno-2.3.19 → agno-2.3.21}/agno/utils/message.py +0 -0
  547. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/__init__.py +0 -0
  548. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/ai_foundry.py +0 -0
  549. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/claude.py +0 -0
  550. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/cohere.py +0 -0
  551. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/llama.py +0 -0
  552. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/mistral.py +0 -0
  553. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/openai_responses.py +0 -0
  554. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/schema_utils.py +0 -0
  555. {agno-2.3.19 → agno-2.3.21}/agno/utils/models/watsonx.py +0 -0
  556. {agno-2.3.19 → agno-2.3.21}/agno/utils/openai.py +0 -0
  557. {agno-2.3.19 → agno-2.3.21}/agno/utils/os.py +0 -0
  558. {agno-2.3.19 → agno-2.3.21}/agno/utils/pickle.py +0 -0
  559. {agno-2.3.19 → agno-2.3.21}/agno/utils/pprint.py +0 -0
  560. {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/__init__.py +0 -0
  561. {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/agent.py +0 -0
  562. {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/team.py +0 -0
  563. {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/workflow.py +0 -0
  564. {agno-2.3.19 → agno-2.3.21}/agno/utils/prompts.py +0 -0
  565. {agno-2.3.19 → agno-2.3.21}/agno/utils/reasoning.py +0 -0
  566. {agno-2.3.19 → agno-2.3.21}/agno/utils/remote.py +0 -0
  567. {agno-2.3.19 → agno-2.3.21}/agno/utils/response_iterator.py +0 -0
  568. {agno-2.3.19 → agno-2.3.21}/agno/utils/safe_formatter.py +0 -0
  569. {agno-2.3.19 → agno-2.3.21}/agno/utils/serialize.py +0 -0
  570. {agno-2.3.19 → agno-2.3.21}/agno/utils/shell.py +0 -0
  571. {agno-2.3.19 → agno-2.3.21}/agno/utils/streamlit.py +0 -0
  572. {agno-2.3.19 → agno-2.3.21}/agno/utils/string.py +0 -0
  573. {agno-2.3.19 → agno-2.3.21}/agno/utils/team.py +0 -0
  574. {agno-2.3.19 → agno-2.3.21}/agno/utils/timer.py +0 -0
  575. {agno-2.3.19 → agno-2.3.21}/agno/utils/tokens.py +0 -0
  576. {agno-2.3.19 → agno-2.3.21}/agno/utils/tools.py +0 -0
  577. {agno-2.3.19 → agno-2.3.21}/agno/utils/web.py +0 -0
  578. {agno-2.3.19 → agno-2.3.21}/agno/utils/whatsapp.py +0 -0
  579. {agno-2.3.19 → agno-2.3.21}/agno/utils/yaml_io.py +0 -0
  580. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/__init__.py +0 -0
  581. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/base.py +0 -0
  582. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/__init__.py +0 -0
  583. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/cassandra.py +0 -0
  584. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  585. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/index.py +0 -0
  586. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/chroma/__init__.py +0 -0
  587. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/chroma/chromadb.py +0 -0
  588. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/__init__.py +0 -0
  589. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  590. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/index.py +0 -0
  591. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/couchbase/__init__.py +0 -0
  592. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/couchbase/couchbase.py +0 -0
  593. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/distance.py +0 -0
  594. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lancedb/__init__.py +0 -0
  595. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lancedb/lance_db.py +0 -0
  596. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/langchaindb/__init__.py +0 -0
  597. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/langchaindb/langchaindb.py +0 -0
  598. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lightrag/__init__.py +0 -0
  599. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lightrag/lightrag.py +0 -0
  600. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/llamaindex/__init__.py +0 -0
  601. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
  602. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/milvus/__init__.py +0 -0
  603. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/milvus/milvus.py +0 -0
  604. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/mongodb/__init__.py +0 -0
  605. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/mongodb/mongodb.py +0 -0
  606. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/__init__.py +0 -0
  607. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/index.py +0 -0
  608. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/pgvector.py +0 -0
  609. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pineconedb/__init__.py +0 -0
  610. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  611. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/qdrant/__init__.py +0 -0
  612. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/qdrant/qdrant.py +0 -0
  613. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/redis/__init__.py +0 -0
  614. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/redis/redisdb.py +0 -0
  615. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/search.py +0 -0
  616. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/__init__.py +0 -0
  617. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/index.py +0 -0
  618. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/singlestore.py +0 -0
  619. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/surrealdb/__init__.py +0 -0
  620. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  621. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/upstashdb/__init__.py +0 -0
  622. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  623. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/index.py +0 -0
  624. {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/weaviate.py +0 -0
  625. {agno-2.3.19 → agno-2.3.21}/agno/workflow/__init__.py +0 -0
  626. {agno-2.3.19 → agno-2.3.21}/agno/workflow/agent.py +0 -0
  627. {agno-2.3.19 → agno-2.3.21}/agno/workflow/condition.py +0 -0
  628. {agno-2.3.19 → agno-2.3.21}/agno/workflow/loop.py +0 -0
  629. {agno-2.3.19 → agno-2.3.21}/agno/workflow/parallel.py +0 -0
  630. {agno-2.3.19 → agno-2.3.21}/agno/workflow/remote.py +0 -0
  631. {agno-2.3.19 → agno-2.3.21}/agno/workflow/router.py +0 -0
  632. {agno-2.3.19 → agno-2.3.21}/agno/workflow/step.py +0 -0
  633. {agno-2.3.19 → agno-2.3.21}/agno/workflow/steps.py +0 -0
  634. {agno-2.3.19 → agno-2.3.21}/agno/workflow/types.py +0 -0
  635. {agno-2.3.19 → agno-2.3.21}/agno.egg-info/dependency_links.txt +0 -0
  636. {agno-2.3.19 → agno-2.3.21}/agno.egg-info/top_level.txt +0 -0
  637. {agno-2.3.19 → agno-2.3.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.3.19
3
+ Version: 2.3.21
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
@@ -49,6 +49,7 @@ Requires-Dist: uvicorn; extra == "dev"
49
49
  Requires-Dist: PyJWT; extra == "dev"
50
50
  Requires-Dist: mcp; extra == "dev"
51
51
  Requires-Dist: openai; extra == "dev"
52
+ Requires-Dist: fakeredis; extra == "dev"
52
53
  Provides-Extra: os
53
54
  Requires-Dist: fastapi; extra == "os"
54
55
  Requires-Dist: uvicorn; extra == "os"
@@ -414,7 +415,7 @@ Dynamic: license-file
414
415
  <div align="center">
415
416
  <a href="https://docs.agno.com">Documentation</a>
416
417
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
417
- <a href="https://docs.agno.com/examples/use-cases/agents/overview">Examples</a>
418
+ <a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
418
419
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
419
420
  <a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
420
421
  <br />
@@ -422,25 +423,27 @@ Dynamic: license-file
422
423
 
423
424
  ## What is Agno?
424
425
 
425
- Agno is an incredibly fast multi-agent framework, runtime and control plane.
426
+ Agno is a multi-agent framework, runtime, and control plane. Use it to build private and secure AI products that run in your cloud.
426
427
 
427
- Companies want to build AI products, run them as a secure containerized service in their cloud, and monitor, test, and manage their agentic system with a beautiful UI. Doing this takes far more than calling an LLM API in a loop, it requires a thoughtfully designed agentic platform.
428
+ - **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
429
+ - **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
430
+ - **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
428
431
 
429
- Agno provides the unified stack for building, running and managing multi-agent systems:
432
+ ## Why Agno?
430
433
 
431
- - **Framework**: Build agents, multi-agent teams and workflows with memory, knowledge, state, guardrails, HITL, context compression, MCP, A2A and 100+ toolkits.
432
- - **AgentOS Runtime**: Run your multi-agent system in production with a secure, stateless runtime and ready to use integration endpoints.
433
- - **AgentOS Control Plane**: Test, monitor and manage AgentOS deployments across environments with full operational visibility.
434
+ - **Your cloud, your data:** AgentOS runs entirely in your infrastructure. Zero data leaves your environment.
435
+ - **Production-ready from day one:** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
436
+ - **Actually fast:** 529× faster than LangGraph, 24× lower memory. Matters at scale.
434
437
 
435
- Checkout the full list of features [here](#features).
438
+ ## Getting Started
436
439
 
437
- ## Getting started
440
+ New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
438
441
 
439
- If you're new to Agno, follow our [quickstart](https://docs.agno.com/get-started/quickstart) to build your first Agent and chat with it using the AgentOS UI.
442
+ Then:
443
+ - Browse the [cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook) for real-world examples
444
+ - Read the [docs](https://docs.agno.com) to learn more.
440
445
 
441
- After that, checkout the [examples gallery](https://docs.agno.com/examples/use-cases/agents/overview) and build real-world applications with Agno.
442
-
443
- ## Documentation, Community & More Examples
446
+ ## Resources
444
447
 
445
448
  - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
446
449
  - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
@@ -496,144 +499,72 @@ When you run the example script shared above, you get a FastAPI app that you can
496
499
 
497
500
  https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
498
501
 
499
- ## The Complete Agentic Solution
502
+ ## Private by Design
500
503
 
501
- Agno provides the complete solution for companies building agentic systems:
504
+ This is the part we care most about.
502
505
 
503
- - The fastest framework for building agents, multi-agent teams and agentic workflows.
504
- - A ready-to-use FastAPI app that gets you building AI products on day one.
505
- - A control plane for testing, monitoring and managing your system.
506
+ AgentOS runs in **your** cloud. The control plane UI connects directly to your runtime from your browser. Your data never touches our servers. No retention costs, no vendor lock-in, no compliance headaches.
506
507
 
507
- 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.
508
+ This isn't a privacy mode or enterprise add-on. It's how Agno works.
508
509
 
509
510
  ## Features
510
511
 
511
- Agno is an incredibly feature-rich framework purpose-built for Agent Engineering. Here are some key features:
512
-
513
- | **Category** | **Feature** | **Description** |
514
- | -------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
515
- | **Foundational Principles** | **Model Agnostic** | Supports all model providers so you can choose the best model for your use case |
516
- | | **Type Safe** | Enforces structured I/O through input_schema and output_schema for predictable and composable agent behavior. |
517
- | | **Dynamic Context** | Inject variables, state, and retrieved data at runtime into context. Compress, summarize and filter context to keep your Agents focused and efficient. |
518
- | | **Designed for Scale** | Designed around async execution and long-running tasks for high throughput agent workloads. |
519
- | **Memory, Knowledge, and Persistence** | **Persistent Storage** | Give your Agents, Teams, and Workflows a database to persist session history, state, and messages. |
520
- | | **User Memory** | Built in memory layer that helps agents recall user specific context across sessions. |
521
- | | **Agentic RAG** | Connect to 20+ vector stores (called **Knowledge**) with hybrid search, reranking, and chunking out of the box. |
522
- | | **Culture** | Shared long term collective memory that compounds across agents and time. |
523
- | | **Ephemeral Context** | In memory scratchpad for short lived reasoning without polluting long term state. |
524
- | **Execution & Control** | **Human-in-the-Loop** | Native support for confirmations, approvals, manual overrides, and external actions. |
525
- | | **Guardrails** | Built-in safeguards for validation, security, and prompt protection. |
526
- | | **Agent Lifecycle Hooks** | Pre and post hooks to validate, enrich, or transform inputs and outputs. |
527
- | | **MCP Integration** | First-class support for the Model Context Protocol (MCP) to connect Agents with external systems. |
528
- | | **A2A Integration** | First-class support for the Agent to Agent communication protocol (A2A). |
529
- | | **Toolkits** | 100+ built in toolkits with thousands of tools covering data, code, web, and enterprise APIs. |
530
- | **Runtime & Evaluation** | **Runtime** | Prebuilt FastAPI runtime with SSE compatible endpoints. Production ready from day one. |
531
- | | **Control Plane (UI)** | Integrated interface to test, observe, and debug your agents, teams, and workflows in real time. |
532
- | | **Natively Multimodal** | Agents can process and generate text, images, audio, video, and files. |
533
- | | **Evals** | Measure Accuracy, Performance, Latency, and Reliability across agents and workflows. |
534
- | | **Durable Execution** | Built in support for long running, resumable workflows. |
535
- | **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. |
536
- | | **Data Governance** | Your data lives securely in your Agent database, no external data sharing or vendor lock-in. |
537
- | | **Access Control** | Role-based access (RBAC) and per-agent permissions to protect sensitive contexts and tools. |
538
-
539
- Every part of Agno is built for real-world deployment — where developer experience meets production performance.
540
-
541
- ## Setup Your Coding Agent to Use Agno
542
-
543
- 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.
544
-
545
- ### IDE Integration
546
-
547
- When building Agno agents, using Agno documentation as a source in your IDE is a great way to speed up your development. Here's how to integrate with Cursor:
548
-
549
- 1. In Cursor, go to the "Cursor Settings" menu.
550
- 2. Find the "Indexing & Docs" section.
551
- 3. Add `https://docs.agno.com/llms-full.txt` to the list of documentation URLs.
552
- 4. Save the changes.
553
-
554
- Now, Cursor will have access to the Agno documentation. You can do the same with other IDEs like VSCode, Windsurf etc.
512
+ **Core**
513
+ - Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
514
+ - Type-safe I/O with `input_schema` and `output_schema`
515
+ - Async-first, built for long-running tasks
516
+ - Natively multimodal (text, images, audio, video, files)
517
+
518
+ **Memory & Knowledge**
519
+ - Persistent storage for session history and state
520
+ - User memory that persists across sessions
521
+ - Agentic RAG with 20+ vector stores, hybrid search, reranking
522
+ - Culture shared long-term memory across agents
523
+
524
+ **Execution**
525
+ - Human-in-the-loop (confirmations, approvals, overrides)
526
+ - Guardrails for validation and security
527
+ - Pre/post hooks for the agent lifecycle
528
+ - First-class MCP and A2A support
529
+ - 100+ built-in toolkits
530
+
531
+ **Production**
532
+ - Ready-to-use FastAPI runtime
533
+ - Integrated control plane UI
534
+ - Evals for accuracy, performance, latency
535
+ - Durable execution for resumable workflows
536
+ - RBAC and per-agent permissions
555
537
 
556
538
  ## Performance
557
539
 
558
- 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.
559
-
560
- At Agno, we optimize performance across 3 dimensions:
561
-
562
- 1. **Agent performance:** We optimize static operations (instantiation, memory footprint) and runtime operations (tool calls, memory updates, history management).
563
- 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.
564
- 3. **Agent reliability and accuracy:** Monitored through evals, which we'll explore later.
565
-
566
- ### Agent Performance
567
-
568
- 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):
569
-
570
- - **Agent instantiation:** ~3μs on average
571
- - **Memory footprint:** ~6.6Kib on average
572
-
573
- 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**.
574
-
575
- > [!NOTE]
576
- > 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.
577
-
578
- ### Instantiation Time
540
+ We're obsessive about performance because agent workloads spawn hundreds of instances and run long tasks. Stateless, horizontal scalability isn't optional.
579
541
 
580
- 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.
542
+ **Benchmarks** (Apple M4 MacBook Pro, Oct 2025):
581
543
 
582
- > [!NOTE]
583
- > 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.
544
+ | Metric | Agno | LangGraph | PydanticAI | CrewAI |
545
+ |--------|------|-----------|------------|--------|
546
+ | Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
547
+ | Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
584
548
 
585
- ```shell
586
- # Setup virtual environment
587
- ./scripts/perf_setup.sh
588
- source .venvs/perfenv/bin/activate
589
-
590
- # Agno
591
- python cookbook/evals/performance/instantiate_agent_with_tool.py
592
-
593
- # LangGraph
594
- python cookbook/evals/performance/comparison/langgraph_instantiation.py
595
- # CrewAI
596
- python cookbook/evals/performance/comparison/crewai_instantiation.py
597
- # Pydantic AI
598
- python cookbook/evals/performance/comparison/pydantic_ai_instantiation.py
599
- ```
600
-
601
- 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.
549
+ Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
602
550
 
603
551
  https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
604
552
 
605
- ### Memory Usage
606
-
607
- 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.
608
-
609
- 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.
610
-
611
- ### Results
612
-
613
- Taking Agno as the baseline, we can see that:
614
-
615
- | Metric | Agno | Langgraph | PydanticAI | CrewAI |
616
- | ------------------ | ---- | ----------- | ---------- | ---------- |
617
- | **Time (seconds)** | 1× | 529× slower | 57× slower | 70× slower |
618
- | **Memory (MiB)** | 1× | 24× higher | 4× higher | 10× higher |
553
+ ## IDE Integration
619
554
 
620
- Exact numbers from the benchmark:
555
+ For AI-assisted development, add our docs to your IDE:
621
556
 
622
- | Metric | Agno | Langgraph | PydanticAI | CrewAI |
623
- | ------------------ | -------- | --------- | ---------- | -------- |
624
- | **Time (seconds)** | 0.000003 | 0.001587 | 0.000170 | 0.000210 |
625
- | **Memory (MiB)** | 0.006642 | 0.161435 | 0.028712 | 0.065652 |
557
+ **Cursor:** Settings Indexing & Docs Add `https://docs.agno.com/llms-full.txt`
626
558
 
627
- > [!NOTE]
628
- > 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.
559
+ Works with VSCode, Windsurf, and other AI-enabled editors too.
629
560
 
630
- ## Contributions
561
+ ## Contributing
631
562
 
632
- We welcome contributions, read our [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md) to get started.
563
+ We welcome contributions. See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
633
564
 
634
565
  ## Telemetry
635
566
 
636
- Agno logs which model an agent used so we can prioritize updates to the most popular providers. You can disable this by setting `AGNO_TELEMETRY=false` in your environment.
567
+ Agno logs which model providers are used so we can prioritize updates. Disable with `AGNO_TELEMETRY=false`.
637
568
 
638
569
  <p align="left">
639
570
  <a href="#top">⬆️ Back to Top</a>
agno-2.3.21/README.md ADDED
@@ -0,0 +1,167 @@
1
+ <div align="center" id="top">
2
+ <a href="https://agno.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
6
+ <img src="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg" alt="Agno">
7
+ </picture>
8
+ </a>
9
+ </div>
10
+
11
+ <div align="center">
12
+ <a href="https://docs.agno.com">Documentation</a>
13
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
14
+ <a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
15
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
16
+ <a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
17
+ <br />
18
+ </div>
19
+
20
+ ## What is Agno?
21
+
22
+ Agno is a multi-agent framework, runtime, and control plane. Use it to build private and secure AI products that run in your cloud.
23
+
24
+ - **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
25
+ - **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
26
+ - **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
27
+
28
+ ## Why Agno?
29
+
30
+ - **Your cloud, your data:** AgentOS runs entirely in your infrastructure. Zero data leaves your environment.
31
+ - **Production-ready from day one:** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
32
+ - **Actually fast:** 529× faster than LangGraph, 24× lower memory. Matters at scale.
33
+
34
+ ## Getting Started
35
+
36
+ New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
37
+
38
+ Then:
39
+ - Browse the [cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook) for real-world examples
40
+ - Read the [docs](https://docs.agno.com) to learn more.
41
+
42
+ ## Resources
43
+
44
+ - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
45
+ - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
46
+ - Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
47
+ - Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
48
+
49
+ ## Example
50
+
51
+ 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).
52
+
53
+ ```python agno_agent.py
54
+ from agno.agent import Agent
55
+ from agno.db.sqlite import SqliteDb
56
+ from agno.models.anthropic import Claude
57
+ from agno.os import AgentOS
58
+ from agno.tools.mcp import MCPTools
59
+
60
+ # ************* Create Agent *************
61
+ agno_agent = Agent(
62
+ name="Agno Agent",
63
+ model=Claude(id="claude-sonnet-4-5"),
64
+ # Add a database to the Agent
65
+ db=SqliteDb(db_file="agno.db"),
66
+ # Add the Agno MCP server to the Agent
67
+ tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
68
+ # Add the previous session history to the context
69
+ add_history_to_context=True,
70
+ markdown=True,
71
+ )
72
+
73
+
74
+ # ************* Create AgentOS *************
75
+ agent_os = AgentOS(agents=[agno_agent])
76
+ # Get the FastAPI app for the AgentOS
77
+ app = agent_os.get_app()
78
+
79
+ # ************* Run AgentOS *************
80
+ if __name__ == "__main__":
81
+ agent_os.serve(app="agno_agent:app", reload=True)
82
+ ```
83
+
84
+ ## AgentOS - Production Runtime for Multi-Agent Systems
85
+
86
+ Building Agents is easy, running them as a secure, scalable service is hard. AgentOS solves this by providing a high performance runtime for serving multi-agent systems in production. Key features include:
87
+
88
+ 1. **Pre-built FastAPI app**: AgentOS includes a ready-to-use FastAPI app for running your agents, teams and workflows. This gives you a significant head start when building an AI product.
89
+
90
+ 2. **Integrated Control Plane**: The [AgentOS UI](https://os.agno.com) connects directly to your runtime, so you can test, monitor and manage your system in real time with full operational visibility.
91
+
92
+ 3. **Private by Design**: AgentOS runs entirely in your cloud, ensuring complete data privacy. No data leaves your environment, making it ideal for security conscious enterprises..
93
+
94
+ When you run the example script shared above, you get a FastAPI app that you can connect to the [AgentOS UI](https://os.agno.com). Here's what it looks like in action:
95
+
96
+ https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
97
+
98
+ ## Private by Design
99
+
100
+ This is the part we care most about.
101
+
102
+ AgentOS runs in **your** cloud. The control plane UI connects directly to your runtime from your browser. Your data never touches our servers. No retention costs, no vendor lock-in, no compliance headaches.
103
+
104
+ This isn't a privacy mode or enterprise add-on. It's how Agno works.
105
+
106
+ ## Features
107
+
108
+ **Core**
109
+ - Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
110
+ - Type-safe I/O with `input_schema` and `output_schema`
111
+ - Async-first, built for long-running tasks
112
+ - Natively multimodal (text, images, audio, video, files)
113
+
114
+ **Memory & Knowledge**
115
+ - Persistent storage for session history and state
116
+ - User memory that persists across sessions
117
+ - Agentic RAG with 20+ vector stores, hybrid search, reranking
118
+ - Culture — shared long-term memory across agents
119
+
120
+ **Execution**
121
+ - Human-in-the-loop (confirmations, approvals, overrides)
122
+ - Guardrails for validation and security
123
+ - Pre/post hooks for the agent lifecycle
124
+ - First-class MCP and A2A support
125
+ - 100+ built-in toolkits
126
+
127
+ **Production**
128
+ - Ready-to-use FastAPI runtime
129
+ - Integrated control plane UI
130
+ - Evals for accuracy, performance, latency
131
+ - Durable execution for resumable workflows
132
+ - RBAC and per-agent permissions
133
+
134
+ ## Performance
135
+
136
+ We're obsessive about performance because agent workloads spawn hundreds of instances and run long tasks. Stateless, horizontal scalability isn't optional.
137
+
138
+ **Benchmarks** (Apple M4 MacBook Pro, Oct 2025):
139
+
140
+ | Metric | Agno | LangGraph | PydanticAI | CrewAI |
141
+ |--------|------|-----------|------------|--------|
142
+ | Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
143
+ | Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
144
+
145
+ Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
146
+
147
+ https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
148
+
149
+ ## IDE Integration
150
+
151
+ For AI-assisted development, add our docs to your IDE:
152
+
153
+ **Cursor:** Settings → Indexing & Docs → Add `https://docs.agno.com/llms-full.txt`
154
+
155
+ Works with VSCode, Windsurf, and other AI-enabled editors too.
156
+
157
+ ## Contributing
158
+
159
+ We welcome contributions. See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
160
+
161
+ ## Telemetry
162
+
163
+ Agno logs which model providers are used so we can prioritize updates. Disable with `AGNO_TELEMETRY=false`.
164
+
165
+ <p align="left">
166
+ <a href="#top">⬆️ Back to Top</a>
167
+ </p>