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