agno 2.3.21__tar.gz → 2.3.23__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.21 → agno-2.3.23}/PKG-INFO +13 -14
  2. {agno-2.3.21 → agno-2.3.23}/README.md +11 -12
  3. {agno-2.3.21 → agno-2.3.23}/agno/agent/agent.py +48 -2
  4. agno-2.3.23/agno/agent/remote.py +512 -0
  5. agno-2.3.23/agno/client/a2a/__init__.py +10 -0
  6. agno-2.3.23/agno/client/a2a/client.py +554 -0
  7. agno-2.3.23/agno/client/a2a/schemas.py +112 -0
  8. agno-2.3.23/agno/client/a2a/utils.py +369 -0
  9. agno-2.3.23/agno/db/migrations/utils.py +19 -0
  10. {agno-2.3.21 → agno-2.3.23}/agno/db/migrations/v1_to_v2.py +54 -16
  11. {agno-2.3.21 → agno-2.3.23}/agno/db/migrations/versions/v2_3_0.py +92 -53
  12. {agno-2.3.21 → agno-2.3.23}/agno/db/mysql/async_mysql.py +5 -7
  13. {agno-2.3.21 → agno-2.3.23}/agno/db/mysql/mysql.py +5 -7
  14. {agno-2.3.21 → agno-2.3.23}/agno/db/mysql/schemas.py +39 -21
  15. {agno-2.3.21 → agno-2.3.23}/agno/db/postgres/async_postgres.py +172 -42
  16. {agno-2.3.21 → agno-2.3.23}/agno/db/postgres/postgres.py +186 -38
  17. {agno-2.3.21 → agno-2.3.23}/agno/db/postgres/schemas.py +39 -21
  18. {agno-2.3.21 → agno-2.3.23}/agno/db/postgres/utils.py +6 -2
  19. {agno-2.3.21 → agno-2.3.23}/agno/db/singlestore/schemas.py +41 -21
  20. {agno-2.3.21 → agno-2.3.23}/agno/db/singlestore/singlestore.py +14 -3
  21. {agno-2.3.21 → agno-2.3.23}/agno/db/sqlite/async_sqlite.py +7 -2
  22. {agno-2.3.21 → agno-2.3.23}/agno/db/sqlite/schemas.py +36 -21
  23. {agno-2.3.21 → agno-2.3.23}/agno/db/sqlite/sqlite.py +3 -7
  24. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/document.py +3 -2
  25. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/markdown.py +8 -3
  26. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/recursive.py +2 -2
  27. {agno-2.3.21 → agno-2.3.23}/agno/models/base.py +4 -0
  28. {agno-2.3.21 → agno-2.3.23}/agno/models/google/gemini.py +27 -4
  29. {agno-2.3.21 → agno-2.3.23}/agno/models/openai/chat.py +1 -1
  30. {agno-2.3.21 → agno-2.3.23}/agno/models/openai/responses.py +14 -7
  31. {agno-2.3.21 → agno-2.3.23}/agno/os/middleware/jwt.py +66 -27
  32. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/agents/router.py +3 -3
  33. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/evals/evals.py +2 -2
  34. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/knowledge/knowledge.py +5 -5
  35. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/knowledge/schemas.py +1 -1
  36. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/memory/memory.py +4 -4
  37. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/session/session.py +2 -2
  38. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/teams/router.py +4 -4
  39. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/traces/traces.py +3 -3
  40. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/workflows/router.py +3 -3
  41. {agno-2.3.21 → agno-2.3.23}/agno/os/schema.py +1 -1
  42. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/deepseek.py +11 -1
  43. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/gemini.py +6 -2
  44. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/groq.py +8 -3
  45. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/openai.py +2 -0
  46. {agno-2.3.21 → agno-2.3.23}/agno/remote/base.py +106 -9
  47. agno-2.3.23/agno/skills/__init__.py +17 -0
  48. agno-2.3.23/agno/skills/agent_skills.py +370 -0
  49. agno-2.3.23/agno/skills/errors.py +32 -0
  50. agno-2.3.23/agno/skills/loaders/__init__.py +4 -0
  51. agno-2.3.23/agno/skills/loaders/base.py +27 -0
  52. agno-2.3.23/agno/skills/loaders/local.py +216 -0
  53. agno-2.3.23/agno/skills/skill.py +65 -0
  54. agno-2.3.23/agno/skills/utils.py +107 -0
  55. agno-2.3.23/agno/skills/validator.py +277 -0
  56. agno-2.3.23/agno/team/remote.py +447 -0
  57. {agno-2.3.21 → agno-2.3.23}/agno/team/team.py +41 -3
  58. {agno-2.3.21 → agno-2.3.23}/agno/tools/brandfetch.py +27 -18
  59. {agno-2.3.21 → agno-2.3.23}/agno/tools/browserbase.py +150 -13
  60. {agno-2.3.21 → agno-2.3.23}/agno/tools/function.py +6 -1
  61. {agno-2.3.21 → agno-2.3.23}/agno/tools/mcp/mcp.py +300 -17
  62. {agno-2.3.21 → agno-2.3.23}/agno/tools/mcp/multi_mcp.py +269 -14
  63. {agno-2.3.21 → agno-2.3.23}/agno/tools/toolkit.py +89 -21
  64. {agno-2.3.21 → agno-2.3.23}/agno/utils/mcp.py +49 -8
  65. {agno-2.3.21 → agno-2.3.23}/agno/utils/string.py +43 -1
  66. {agno-2.3.21 → agno-2.3.23}/agno/workflow/condition.py +4 -2
  67. {agno-2.3.21 → agno-2.3.23}/agno/workflow/loop.py +20 -1
  68. agno-2.3.23/agno/workflow/remote.py +362 -0
  69. {agno-2.3.21 → agno-2.3.23}/agno/workflow/router.py +4 -1
  70. {agno-2.3.21 → agno-2.3.23}/agno/workflow/steps.py +4 -0
  71. {agno-2.3.21 → agno-2.3.23}/agno/workflow/workflow.py +14 -0
  72. {agno-2.3.21 → agno-2.3.23}/agno.egg-info/PKG-INFO +13 -14
  73. {agno-2.3.21 → agno-2.3.23}/agno.egg-info/SOURCES.txt +14 -0
  74. {agno-2.3.21 → agno-2.3.23}/agno.egg-info/requires.txt +1 -1
  75. {agno-2.3.21 → agno-2.3.23}/pyproject.toml +2 -2
  76. agno-2.3.21/agno/agent/remote.py +0 -351
  77. agno-2.3.21/agno/team/remote.py +0 -287
  78. agno-2.3.21/agno/workflow/remote.py +0 -222
  79. {agno-2.3.21 → agno-2.3.23}/LICENSE +0 -0
  80. {agno-2.3.21 → agno-2.3.23}/agno/__init__.py +0 -0
  81. {agno-2.3.21 → agno-2.3.23}/agno/agent/__init__.py +0 -0
  82. {agno-2.3.21 → agno-2.3.23}/agno/api/__init__.py +0 -0
  83. {agno-2.3.21 → agno-2.3.23}/agno/api/agent.py +0 -0
  84. {agno-2.3.21 → agno-2.3.23}/agno/api/api.py +0 -0
  85. {agno-2.3.21 → agno-2.3.23}/agno/api/evals.py +0 -0
  86. {agno-2.3.21 → agno-2.3.23}/agno/api/os.py +0 -0
  87. {agno-2.3.21 → agno-2.3.23}/agno/api/routes.py +0 -0
  88. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/__init__.py +0 -0
  89. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/agent.py +0 -0
  90. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/evals.py +0 -0
  91. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/os.py +0 -0
  92. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/response.py +0 -0
  93. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/team.py +0 -0
  94. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/utils.py +0 -0
  95. {agno-2.3.21 → agno-2.3.23}/agno/api/schemas/workflows.py +0 -0
  96. {agno-2.3.21 → agno-2.3.23}/agno/api/settings.py +0 -0
  97. {agno-2.3.21 → agno-2.3.23}/agno/api/team.py +0 -0
  98. {agno-2.3.21 → agno-2.3.23}/agno/api/workflow.py +0 -0
  99. {agno-2.3.21 → agno-2.3.23}/agno/client/__init__.py +0 -0
  100. {agno-2.3.21 → agno-2.3.23}/agno/client/os.py +0 -0
  101. {agno-2.3.21 → agno-2.3.23}/agno/cloud/aws/base.py +0 -0
  102. {agno-2.3.21 → agno-2.3.23}/agno/cloud/aws/s3/__init__.py +0 -0
  103. {agno-2.3.21 → agno-2.3.23}/agno/cloud/aws/s3/api_client.py +0 -0
  104. {agno-2.3.21 → agno-2.3.23}/agno/cloud/aws/s3/bucket.py +0 -0
  105. {agno-2.3.21 → agno-2.3.23}/agno/cloud/aws/s3/object.py +0 -0
  106. {agno-2.3.21 → agno-2.3.23}/agno/compression/__init__.py +0 -0
  107. {agno-2.3.21 → agno-2.3.23}/agno/compression/manager.py +0 -0
  108. {agno-2.3.21 → agno-2.3.23}/agno/culture/__init__.py +0 -0
  109. {agno-2.3.21 → agno-2.3.23}/agno/culture/manager.py +0 -0
  110. {agno-2.3.21 → agno-2.3.23}/agno/db/__init__.py +0 -0
  111. {agno-2.3.21 → agno-2.3.23}/agno/db/async_postgres/__init__.py +0 -0
  112. {agno-2.3.21 → agno-2.3.23}/agno/db/base.py +0 -0
  113. {agno-2.3.21 → agno-2.3.23}/agno/db/dynamo/__init__.py +0 -0
  114. {agno-2.3.21 → agno-2.3.23}/agno/db/dynamo/dynamo.py +0 -0
  115. {agno-2.3.21 → agno-2.3.23}/agno/db/dynamo/schemas.py +0 -0
  116. {agno-2.3.21 → agno-2.3.23}/agno/db/dynamo/utils.py +0 -0
  117. {agno-2.3.21 → agno-2.3.23}/agno/db/firestore/__init__.py +0 -0
  118. {agno-2.3.21 → agno-2.3.23}/agno/db/firestore/firestore.py +0 -0
  119. {agno-2.3.21 → agno-2.3.23}/agno/db/firestore/schemas.py +0 -0
  120. {agno-2.3.21 → agno-2.3.23}/agno/db/firestore/utils.py +0 -0
  121. {agno-2.3.21 → agno-2.3.23}/agno/db/gcs_json/__init__.py +0 -0
  122. {agno-2.3.21 → agno-2.3.23}/agno/db/gcs_json/gcs_json_db.py +0 -0
  123. {agno-2.3.21 → agno-2.3.23}/agno/db/gcs_json/utils.py +0 -0
  124. {agno-2.3.21 → agno-2.3.23}/agno/db/in_memory/__init__.py +0 -0
  125. {agno-2.3.21 → agno-2.3.23}/agno/db/in_memory/in_memory_db.py +0 -0
  126. {agno-2.3.21 → agno-2.3.23}/agno/db/in_memory/utils.py +0 -0
  127. {agno-2.3.21 → agno-2.3.23}/agno/db/json/__init__.py +0 -0
  128. {agno-2.3.21 → agno-2.3.23}/agno/db/json/json_db.py +0 -0
  129. {agno-2.3.21 → agno-2.3.23}/agno/db/json/utils.py +0 -0
  130. {agno-2.3.21 → agno-2.3.23}/agno/db/migrations/__init__.py +0 -0
  131. {agno-2.3.21 → agno-2.3.23}/agno/db/migrations/manager.py +0 -0
  132. {agno-2.3.21 → agno-2.3.23}/agno/db/migrations/versions/__init__.py +0 -0
  133. {agno-2.3.21 → agno-2.3.23}/agno/db/mongo/__init__.py +0 -0
  134. {agno-2.3.21 → agno-2.3.23}/agno/db/mongo/async_mongo.py +0 -0
  135. {agno-2.3.21 → agno-2.3.23}/agno/db/mongo/mongo.py +0 -0
  136. {agno-2.3.21 → agno-2.3.23}/agno/db/mongo/schemas.py +0 -0
  137. {agno-2.3.21 → agno-2.3.23}/agno/db/mongo/utils.py +0 -0
  138. {agno-2.3.21 → agno-2.3.23}/agno/db/mysql/__init__.py +0 -0
  139. {agno-2.3.21 → agno-2.3.23}/agno/db/mysql/utils.py +0 -0
  140. {agno-2.3.21 → agno-2.3.23}/agno/db/postgres/__init__.py +0 -0
  141. {agno-2.3.21 → agno-2.3.23}/agno/db/redis/__init__.py +0 -0
  142. {agno-2.3.21 → agno-2.3.23}/agno/db/redis/redis.py +0 -0
  143. {agno-2.3.21 → agno-2.3.23}/agno/db/redis/schemas.py +0 -0
  144. {agno-2.3.21 → agno-2.3.23}/agno/db/redis/utils.py +0 -0
  145. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/__init__.py +0 -0
  146. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/culture.py +0 -0
  147. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/evals.py +0 -0
  148. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/knowledge.py +0 -0
  149. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/memory.py +0 -0
  150. {agno-2.3.21 → agno-2.3.23}/agno/db/schemas/metrics.py +0 -0
  151. {agno-2.3.21 → agno-2.3.23}/agno/db/singlestore/__init__.py +0 -0
  152. {agno-2.3.21 → agno-2.3.23}/agno/db/singlestore/utils.py +0 -0
  153. {agno-2.3.21 → agno-2.3.23}/agno/db/sqlite/__init__.py +0 -0
  154. {agno-2.3.21 → agno-2.3.23}/agno/db/sqlite/utils.py +0 -0
  155. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/__init__.py +0 -0
  156. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/metrics.py +0 -0
  157. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/models.py +0 -0
  158. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/queries.py +0 -0
  159. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/surrealdb.py +0 -0
  160. {agno-2.3.21 → agno-2.3.23}/agno/db/surrealdb/utils.py +0 -0
  161. {agno-2.3.21 → agno-2.3.23}/agno/db/utils.py +0 -0
  162. {agno-2.3.21 → agno-2.3.23}/agno/debug.py +0 -0
  163. {agno-2.3.21 → agno-2.3.23}/agno/eval/__init__.py +0 -0
  164. {agno-2.3.21 → agno-2.3.23}/agno/eval/accuracy.py +0 -0
  165. {agno-2.3.21 → agno-2.3.23}/agno/eval/agent_as_judge.py +0 -0
  166. {agno-2.3.21 → agno-2.3.23}/agno/eval/base.py +0 -0
  167. {agno-2.3.21 → agno-2.3.23}/agno/eval/performance.py +0 -0
  168. {agno-2.3.21 → agno-2.3.23}/agno/eval/reliability.py +0 -0
  169. {agno-2.3.21 → agno-2.3.23}/agno/eval/utils.py +0 -0
  170. {agno-2.3.21 → agno-2.3.23}/agno/exceptions.py +0 -0
  171. {agno-2.3.21 → agno-2.3.23}/agno/filters.py +0 -0
  172. {agno-2.3.21 → agno-2.3.23}/agno/guardrails/__init__.py +0 -0
  173. {agno-2.3.21 → agno-2.3.23}/agno/guardrails/base.py +0 -0
  174. {agno-2.3.21 → agno-2.3.23}/agno/guardrails/openai.py +0 -0
  175. {agno-2.3.21 → agno-2.3.23}/agno/guardrails/pii.py +0 -0
  176. {agno-2.3.21 → agno-2.3.23}/agno/guardrails/prompt_injection.py +0 -0
  177. {agno-2.3.21 → agno-2.3.23}/agno/hooks/__init__.py +0 -0
  178. {agno-2.3.21 → agno-2.3.23}/agno/hooks/decorator.py +0 -0
  179. {agno-2.3.21 → agno-2.3.23}/agno/integrations/__init__.py +0 -0
  180. {agno-2.3.21 → agno-2.3.23}/agno/integrations/discord/__init__.py +0 -0
  181. {agno-2.3.21 → agno-2.3.23}/agno/integrations/discord/client.py +0 -0
  182. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/__init__.py +0 -0
  183. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/__init__.py +0 -0
  184. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/agentic.py +0 -0
  185. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/fixed.py +0 -0
  186. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/row.py +0 -0
  187. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/semantic.py +0 -0
  188. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/chunking/strategy.py +0 -0
  189. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/content.py +0 -0
  190. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/document/__init__.py +0 -0
  191. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/document/base.py +0 -0
  192. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/__init__.py +0 -0
  193. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/aws_bedrock.py +0 -0
  194. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/azure_openai.py +0 -0
  195. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/base.py +0 -0
  196. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/cohere.py +0 -0
  197. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/fastembed.py +0 -0
  198. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/fireworks.py +0 -0
  199. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/google.py +0 -0
  200. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/huggingface.py +0 -0
  201. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/jina.py +0 -0
  202. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/langdb.py +0 -0
  203. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/mistral.py +0 -0
  204. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/nebius.py +0 -0
  205. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/ollama.py +0 -0
  206. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/openai.py +0 -0
  207. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/sentence_transformer.py +0 -0
  208. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/together.py +0 -0
  209. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/vllm.py +0 -0
  210. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/embedder/voyageai.py +0 -0
  211. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/knowledge.py +0 -0
  212. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/__init__.py +0 -0
  213. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/arxiv_reader.py +0 -0
  214. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/base.py +0 -0
  215. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/csv_reader.py +0 -0
  216. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/docx_reader.py +0 -0
  217. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
  218. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/firecrawl_reader.py +0 -0
  219. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/json_reader.py +0 -0
  220. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/markdown_reader.py +0 -0
  221. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/pdf_reader.py +0 -0
  222. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/pptx_reader.py +0 -0
  223. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/reader_factory.py +0 -0
  224. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/s3_reader.py +0 -0
  225. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/tavily_reader.py +0 -0
  226. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/text_reader.py +0 -0
  227. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/web_search_reader.py +0 -0
  228. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/website_reader.py +0 -0
  229. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/wikipedia_reader.py +0 -0
  230. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reader/youtube_reader.py +0 -0
  231. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/remote_content/__init__.py +0 -0
  232. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/remote_content/remote_content.py +0 -0
  233. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reranker/__init__.py +0 -0
  234. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reranker/base.py +0 -0
  235. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reranker/cohere.py +0 -0
  236. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reranker/infinity.py +0 -0
  237. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/reranker/sentence_transformer.py +0 -0
  238. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/types.py +0 -0
  239. {agno-2.3.21 → agno-2.3.23}/agno/knowledge/utils.py +0 -0
  240. {agno-2.3.21 → agno-2.3.23}/agno/media.py +0 -0
  241. {agno-2.3.21 → agno-2.3.23}/agno/memory/__init__.py +0 -0
  242. {agno-2.3.21 → agno-2.3.23}/agno/memory/manager.py +0 -0
  243. {agno-2.3.21 → agno-2.3.23}/agno/memory/strategies/__init__.py +0 -0
  244. {agno-2.3.21 → agno-2.3.23}/agno/memory/strategies/base.py +0 -0
  245. {agno-2.3.21 → agno-2.3.23}/agno/memory/strategies/summarize.py +0 -0
  246. {agno-2.3.21 → agno-2.3.23}/agno/memory/strategies/types.py +0 -0
  247. {agno-2.3.21 → agno-2.3.23}/agno/models/__init__.py +0 -0
  248. {agno-2.3.21 → agno-2.3.23}/agno/models/aimlapi/__init__.py +0 -0
  249. {agno-2.3.21 → agno-2.3.23}/agno/models/aimlapi/aimlapi.py +0 -0
  250. {agno-2.3.21 → agno-2.3.23}/agno/models/anthropic/__init__.py +0 -0
  251. {agno-2.3.21 → agno-2.3.23}/agno/models/anthropic/claude.py +0 -0
  252. {agno-2.3.21 → agno-2.3.23}/agno/models/aws/__init__.py +0 -0
  253. {agno-2.3.21 → agno-2.3.23}/agno/models/aws/bedrock.py +0 -0
  254. {agno-2.3.21 → agno-2.3.23}/agno/models/aws/claude.py +0 -0
  255. {agno-2.3.21 → agno-2.3.23}/agno/models/azure/__init__.py +0 -0
  256. {agno-2.3.21 → agno-2.3.23}/agno/models/azure/ai_foundry.py +0 -0
  257. {agno-2.3.21 → agno-2.3.23}/agno/models/azure/openai_chat.py +0 -0
  258. {agno-2.3.21 → agno-2.3.23}/agno/models/cerebras/__init__.py +0 -0
  259. {agno-2.3.21 → agno-2.3.23}/agno/models/cerebras/cerebras.py +0 -0
  260. {agno-2.3.21 → agno-2.3.23}/agno/models/cerebras/cerebras_openai.py +0 -0
  261. {agno-2.3.21 → agno-2.3.23}/agno/models/cohere/__init__.py +0 -0
  262. {agno-2.3.21 → agno-2.3.23}/agno/models/cohere/chat.py +0 -0
  263. {agno-2.3.21 → agno-2.3.23}/agno/models/cometapi/__init__.py +0 -0
  264. {agno-2.3.21 → agno-2.3.23}/agno/models/cometapi/cometapi.py +0 -0
  265. {agno-2.3.21 → agno-2.3.23}/agno/models/dashscope/__init__.py +0 -0
  266. {agno-2.3.21 → agno-2.3.23}/agno/models/dashscope/dashscope.py +0 -0
  267. {agno-2.3.21 → agno-2.3.23}/agno/models/deepinfra/__init__.py +0 -0
  268. {agno-2.3.21 → agno-2.3.23}/agno/models/deepinfra/deepinfra.py +0 -0
  269. {agno-2.3.21 → agno-2.3.23}/agno/models/deepseek/__init__.py +0 -0
  270. {agno-2.3.21 → agno-2.3.23}/agno/models/deepseek/deepseek.py +0 -0
  271. {agno-2.3.21 → agno-2.3.23}/agno/models/defaults.py +0 -0
  272. {agno-2.3.21 → agno-2.3.23}/agno/models/fireworks/__init__.py +0 -0
  273. {agno-2.3.21 → agno-2.3.23}/agno/models/fireworks/fireworks.py +0 -0
  274. {agno-2.3.21 → agno-2.3.23}/agno/models/google/__init__.py +0 -0
  275. {agno-2.3.21 → agno-2.3.23}/agno/models/google/utils.py +0 -0
  276. {agno-2.3.21 → agno-2.3.23}/agno/models/groq/__init__.py +0 -0
  277. {agno-2.3.21 → agno-2.3.23}/agno/models/groq/groq.py +0 -0
  278. {agno-2.3.21 → agno-2.3.23}/agno/models/huggingface/__init__.py +0 -0
  279. {agno-2.3.21 → agno-2.3.23}/agno/models/huggingface/huggingface.py +0 -0
  280. {agno-2.3.21 → agno-2.3.23}/agno/models/ibm/__init__.py +0 -0
  281. {agno-2.3.21 → agno-2.3.23}/agno/models/ibm/watsonx.py +0 -0
  282. {agno-2.3.21 → agno-2.3.23}/agno/models/internlm/__init__.py +0 -0
  283. {agno-2.3.21 → agno-2.3.23}/agno/models/internlm/internlm.py +0 -0
  284. {agno-2.3.21 → agno-2.3.23}/agno/models/langdb/__init__.py +0 -0
  285. {agno-2.3.21 → agno-2.3.23}/agno/models/langdb/langdb.py +0 -0
  286. {agno-2.3.21 → agno-2.3.23}/agno/models/litellm/__init__.py +0 -0
  287. {agno-2.3.21 → agno-2.3.23}/agno/models/litellm/chat.py +0 -0
  288. {agno-2.3.21 → agno-2.3.23}/agno/models/litellm/litellm_openai.py +0 -0
  289. {agno-2.3.21 → agno-2.3.23}/agno/models/llama_cpp/__init__.py +0 -0
  290. {agno-2.3.21 → agno-2.3.23}/agno/models/llama_cpp/llama_cpp.py +0 -0
  291. {agno-2.3.21 → agno-2.3.23}/agno/models/lmstudio/__init__.py +0 -0
  292. {agno-2.3.21 → agno-2.3.23}/agno/models/lmstudio/lmstudio.py +0 -0
  293. {agno-2.3.21 → agno-2.3.23}/agno/models/message.py +0 -0
  294. {agno-2.3.21 → agno-2.3.23}/agno/models/meta/__init__.py +0 -0
  295. {agno-2.3.21 → agno-2.3.23}/agno/models/meta/llama.py +0 -0
  296. {agno-2.3.21 → agno-2.3.23}/agno/models/meta/llama_openai.py +0 -0
  297. {agno-2.3.21 → agno-2.3.23}/agno/models/metrics.py +0 -0
  298. {agno-2.3.21 → agno-2.3.23}/agno/models/mistral/__init__.py +0 -0
  299. {agno-2.3.21 → agno-2.3.23}/agno/models/mistral/mistral.py +0 -0
  300. {agno-2.3.21 → agno-2.3.23}/agno/models/nebius/__init__.py +0 -0
  301. {agno-2.3.21 → agno-2.3.23}/agno/models/nebius/nebius.py +0 -0
  302. {agno-2.3.21 → agno-2.3.23}/agno/models/nexus/__init__.py +0 -0
  303. {agno-2.3.21 → agno-2.3.23}/agno/models/nexus/nexus.py +0 -0
  304. {agno-2.3.21 → agno-2.3.23}/agno/models/nvidia/__init__.py +0 -0
  305. {agno-2.3.21 → agno-2.3.23}/agno/models/nvidia/nvidia.py +0 -0
  306. {agno-2.3.21 → agno-2.3.23}/agno/models/ollama/__init__.py +0 -0
  307. {agno-2.3.21 → agno-2.3.23}/agno/models/ollama/chat.py +0 -0
  308. {agno-2.3.21 → agno-2.3.23}/agno/models/openai/__init__.py +0 -0
  309. {agno-2.3.21 → agno-2.3.23}/agno/models/openai/like.py +0 -0
  310. {agno-2.3.21 → agno-2.3.23}/agno/models/openrouter/__init__.py +0 -0
  311. {agno-2.3.21 → agno-2.3.23}/agno/models/openrouter/openrouter.py +0 -0
  312. {agno-2.3.21 → agno-2.3.23}/agno/models/perplexity/__init__.py +0 -0
  313. {agno-2.3.21 → agno-2.3.23}/agno/models/perplexity/perplexity.py +0 -0
  314. {agno-2.3.21 → agno-2.3.23}/agno/models/portkey/__init__.py +0 -0
  315. {agno-2.3.21 → agno-2.3.23}/agno/models/portkey/portkey.py +0 -0
  316. {agno-2.3.21 → agno-2.3.23}/agno/models/requesty/__init__.py +0 -0
  317. {agno-2.3.21 → agno-2.3.23}/agno/models/requesty/requesty.py +0 -0
  318. {agno-2.3.21 → agno-2.3.23}/agno/models/response.py +0 -0
  319. {agno-2.3.21 → agno-2.3.23}/agno/models/sambanova/__init__.py +0 -0
  320. {agno-2.3.21 → agno-2.3.23}/agno/models/sambanova/sambanova.py +0 -0
  321. {agno-2.3.21 → agno-2.3.23}/agno/models/siliconflow/__init__.py +0 -0
  322. {agno-2.3.21 → agno-2.3.23}/agno/models/siliconflow/siliconflow.py +0 -0
  323. {agno-2.3.21 → agno-2.3.23}/agno/models/together/__init__.py +0 -0
  324. {agno-2.3.21 → agno-2.3.23}/agno/models/together/together.py +0 -0
  325. {agno-2.3.21 → agno-2.3.23}/agno/models/utils.py +0 -0
  326. {agno-2.3.21 → agno-2.3.23}/agno/models/vercel/__init__.py +0 -0
  327. {agno-2.3.21 → agno-2.3.23}/agno/models/vercel/v0.py +0 -0
  328. {agno-2.3.21 → agno-2.3.23}/agno/models/vertexai/__init__.py +0 -0
  329. {agno-2.3.21 → agno-2.3.23}/agno/models/vertexai/claude.py +0 -0
  330. {agno-2.3.21 → agno-2.3.23}/agno/models/vllm/__init__.py +0 -0
  331. {agno-2.3.21 → agno-2.3.23}/agno/models/vllm/vllm.py +0 -0
  332. {agno-2.3.21 → agno-2.3.23}/agno/models/xai/__init__.py +0 -0
  333. {agno-2.3.21 → agno-2.3.23}/agno/models/xai/xai.py +0 -0
  334. {agno-2.3.21 → agno-2.3.23}/agno/os/__init__.py +0 -0
  335. {agno-2.3.21 → agno-2.3.23}/agno/os/app.py +0 -0
  336. {agno-2.3.21 → agno-2.3.23}/agno/os/auth.py +0 -0
  337. {agno-2.3.21 → agno-2.3.23}/agno/os/config.py +0 -0
  338. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/__init__.py +0 -0
  339. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/a2a/__init__.py +0 -0
  340. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/a2a/a2a.py +0 -0
  341. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/a2a/router.py +0 -0
  342. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/a2a/utils.py +0 -0
  343. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/agui/__init__.py +0 -0
  344. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/agui/agui.py +0 -0
  345. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/agui/router.py +0 -0
  346. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/agui/utils.py +0 -0
  347. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/base.py +0 -0
  348. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/slack/__init__.py +0 -0
  349. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/slack/router.py +0 -0
  350. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/slack/security.py +0 -0
  351. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/slack/slack.py +0 -0
  352. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/whatsapp/__init__.py +0 -0
  353. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/whatsapp/router.py +0 -0
  354. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/whatsapp/security.py +0 -0
  355. {agno-2.3.21 → agno-2.3.23}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
  356. {agno-2.3.21 → agno-2.3.23}/agno/os/managers.py +0 -0
  357. {agno-2.3.21 → agno-2.3.23}/agno/os/mcp.py +0 -0
  358. {agno-2.3.21 → agno-2.3.23}/agno/os/middleware/__init__.py +0 -0
  359. {agno-2.3.21 → agno-2.3.23}/agno/os/router.py +0 -0
  360. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/__init__.py +0 -0
  361. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/agents/__init__.py +0 -0
  362. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/agents/schema.py +0 -0
  363. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/database.py +0 -0
  364. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/evals/__init__.py +0 -0
  365. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/evals/schemas.py +0 -0
  366. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/evals/utils.py +0 -0
  367. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/health.py +0 -0
  368. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/home.py +0 -0
  369. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/knowledge/__init__.py +0 -0
  370. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/memory/__init__.py +0 -0
  371. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/memory/schemas.py +0 -0
  372. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/metrics/__init__.py +0 -0
  373. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/metrics/metrics.py +0 -0
  374. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/metrics/schemas.py +0 -0
  375. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/session/__init__.py +0 -0
  376. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/teams/__init__.py +0 -0
  377. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/teams/schema.py +0 -0
  378. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/traces/__init__.py +0 -0
  379. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/traces/schemas.py +0 -0
  380. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/workflows/__init__.py +0 -0
  381. {agno-2.3.21 → agno-2.3.23}/agno/os/routers/workflows/schema.py +0 -0
  382. {agno-2.3.21 → agno-2.3.23}/agno/os/scopes.py +0 -0
  383. {agno-2.3.21 → agno-2.3.23}/agno/os/settings.py +0 -0
  384. {agno-2.3.21 → agno-2.3.23}/agno/os/utils.py +0 -0
  385. {agno-2.3.21 → agno-2.3.23}/agno/py.typed +0 -0
  386. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/__init__.py +0 -0
  387. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/anthropic.py +0 -0
  388. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/azure_ai_foundry.py +0 -0
  389. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/default.py +0 -0
  390. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/helpers.py +0 -0
  391. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/manager.py +0 -0
  392. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/ollama.py +0 -0
  393. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/step.py +0 -0
  394. {agno-2.3.21 → agno-2.3.23}/agno/reasoning/vertexai.py +0 -0
  395. {agno-2.3.21 → agno-2.3.23}/agno/remote/__init__.py +0 -0
  396. {agno-2.3.21 → agno-2.3.23}/agno/run/__init__.py +0 -0
  397. {agno-2.3.21 → agno-2.3.23}/agno/run/agent.py +0 -0
  398. {agno-2.3.21 → agno-2.3.23}/agno/run/base.py +0 -0
  399. {agno-2.3.21 → agno-2.3.23}/agno/run/cancel.py +0 -0
  400. {agno-2.3.21 → agno-2.3.23}/agno/run/cancellation_management/__init__.py +0 -0
  401. {agno-2.3.21 → agno-2.3.23}/agno/run/cancellation_management/base.py +0 -0
  402. {agno-2.3.21 → agno-2.3.23}/agno/run/cancellation_management/in_memory_cancellation_manager.py +0 -0
  403. {agno-2.3.21 → agno-2.3.23}/agno/run/cancellation_management/redis_cancellation_manager.py +0 -0
  404. {agno-2.3.21 → agno-2.3.23}/agno/run/messages.py +0 -0
  405. {agno-2.3.21 → agno-2.3.23}/agno/run/requirement.py +0 -0
  406. {agno-2.3.21 → agno-2.3.23}/agno/run/team.py +0 -0
  407. {agno-2.3.21 → agno-2.3.23}/agno/run/workflow.py +0 -0
  408. {agno-2.3.21 → agno-2.3.23}/agno/session/__init__.py +0 -0
  409. {agno-2.3.21 → agno-2.3.23}/agno/session/agent.py +0 -0
  410. {agno-2.3.21 → agno-2.3.23}/agno/session/summary.py +0 -0
  411. {agno-2.3.21 → agno-2.3.23}/agno/session/team.py +0 -0
  412. {agno-2.3.21 → agno-2.3.23}/agno/session/workflow.py +0 -0
  413. {agno-2.3.21 → agno-2.3.23}/agno/table.py +0 -0
  414. {agno-2.3.21 → agno-2.3.23}/agno/team/__init__.py +0 -0
  415. {agno-2.3.21 → agno-2.3.23}/agno/tools/__init__.py +0 -0
  416. {agno-2.3.21 → agno-2.3.23}/agno/tools/agentql.py +0 -0
  417. {agno-2.3.21 → agno-2.3.23}/agno/tools/airflow.py +0 -0
  418. {agno-2.3.21 → agno-2.3.23}/agno/tools/api.py +0 -0
  419. {agno-2.3.21 → agno-2.3.23}/agno/tools/apify.py +0 -0
  420. {agno-2.3.21 → agno-2.3.23}/agno/tools/arxiv.py +0 -0
  421. {agno-2.3.21 → agno-2.3.23}/agno/tools/aws_lambda.py +0 -0
  422. {agno-2.3.21 → agno-2.3.23}/agno/tools/aws_ses.py +0 -0
  423. {agno-2.3.21 → agno-2.3.23}/agno/tools/baidusearch.py +0 -0
  424. {agno-2.3.21 → agno-2.3.23}/agno/tools/bitbucket.py +0 -0
  425. {agno-2.3.21 → agno-2.3.23}/agno/tools/bravesearch.py +0 -0
  426. {agno-2.3.21 → agno-2.3.23}/agno/tools/brightdata.py +0 -0
  427. {agno-2.3.21 → agno-2.3.23}/agno/tools/calcom.py +0 -0
  428. {agno-2.3.21 → agno-2.3.23}/agno/tools/calculator.py +0 -0
  429. {agno-2.3.21 → agno-2.3.23}/agno/tools/cartesia.py +0 -0
  430. {agno-2.3.21 → agno-2.3.23}/agno/tools/clickup.py +0 -0
  431. {agno-2.3.21 → agno-2.3.23}/agno/tools/confluence.py +0 -0
  432. {agno-2.3.21 → agno-2.3.23}/agno/tools/crawl4ai.py +0 -0
  433. {agno-2.3.21 → agno-2.3.23}/agno/tools/csv_toolkit.py +0 -0
  434. {agno-2.3.21 → agno-2.3.23}/agno/tools/dalle.py +0 -0
  435. {agno-2.3.21 → agno-2.3.23}/agno/tools/daytona.py +0 -0
  436. {agno-2.3.21 → agno-2.3.23}/agno/tools/decorator.py +0 -0
  437. {agno-2.3.21 → agno-2.3.23}/agno/tools/desi_vocal.py +0 -0
  438. {agno-2.3.21 → agno-2.3.23}/agno/tools/discord.py +0 -0
  439. {agno-2.3.21 → agno-2.3.23}/agno/tools/docker.py +0 -0
  440. {agno-2.3.21 → agno-2.3.23}/agno/tools/duckdb.py +0 -0
  441. {agno-2.3.21 → agno-2.3.23}/agno/tools/duckduckgo.py +0 -0
  442. {agno-2.3.21 → agno-2.3.23}/agno/tools/e2b.py +0 -0
  443. {agno-2.3.21 → agno-2.3.23}/agno/tools/eleven_labs.py +0 -0
  444. {agno-2.3.21 → agno-2.3.23}/agno/tools/email.py +0 -0
  445. {agno-2.3.21 → agno-2.3.23}/agno/tools/evm.py +0 -0
  446. {agno-2.3.21 → agno-2.3.23}/agno/tools/exa.py +0 -0
  447. {agno-2.3.21 → agno-2.3.23}/agno/tools/fal.py +0 -0
  448. {agno-2.3.21 → agno-2.3.23}/agno/tools/file.py +0 -0
  449. {agno-2.3.21 → agno-2.3.23}/agno/tools/file_generation.py +0 -0
  450. {agno-2.3.21 → agno-2.3.23}/agno/tools/financial_datasets.py +0 -0
  451. {agno-2.3.21 → agno-2.3.23}/agno/tools/firecrawl.py +0 -0
  452. {agno-2.3.21 → agno-2.3.23}/agno/tools/giphy.py +0 -0
  453. {agno-2.3.21 → agno-2.3.23}/agno/tools/github.py +0 -0
  454. {agno-2.3.21 → agno-2.3.23}/agno/tools/gmail.py +0 -0
  455. {agno-2.3.21 → agno-2.3.23}/agno/tools/google_bigquery.py +0 -0
  456. {agno-2.3.21 → agno-2.3.23}/agno/tools/google_drive.py +0 -0
  457. {agno-2.3.21 → agno-2.3.23}/agno/tools/google_maps.py +0 -0
  458. {agno-2.3.21 → agno-2.3.23}/agno/tools/googlecalendar.py +0 -0
  459. {agno-2.3.21 → agno-2.3.23}/agno/tools/googlesheets.py +0 -0
  460. {agno-2.3.21 → agno-2.3.23}/agno/tools/hackernews.py +0 -0
  461. {agno-2.3.21 → agno-2.3.23}/agno/tools/jina.py +0 -0
  462. {agno-2.3.21 → agno-2.3.23}/agno/tools/jira.py +0 -0
  463. {agno-2.3.21 → agno-2.3.23}/agno/tools/knowledge.py +0 -0
  464. {agno-2.3.21 → agno-2.3.23}/agno/tools/linear.py +0 -0
  465. {agno-2.3.21 → agno-2.3.23}/agno/tools/linkup.py +0 -0
  466. {agno-2.3.21 → agno-2.3.23}/agno/tools/local_file_system.py +0 -0
  467. {agno-2.3.21 → agno-2.3.23}/agno/tools/lumalab.py +0 -0
  468. {agno-2.3.21 → agno-2.3.23}/agno/tools/mcp/__init__.py +0 -0
  469. {agno-2.3.21 → agno-2.3.23}/agno/tools/mcp/params.py +0 -0
  470. {agno-2.3.21 → agno-2.3.23}/agno/tools/mcp_toolbox.py +0 -0
  471. {agno-2.3.21 → agno-2.3.23}/agno/tools/mem0.py +0 -0
  472. {agno-2.3.21 → agno-2.3.23}/agno/tools/memory.py +0 -0
  473. {agno-2.3.21 → agno-2.3.23}/agno/tools/mlx_transcribe.py +0 -0
  474. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/__init__.py +0 -0
  475. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/azure_openai.py +0 -0
  476. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/gemini.py +0 -0
  477. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/groq.py +0 -0
  478. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/morph.py +0 -0
  479. {agno-2.3.21 → agno-2.3.23}/agno/tools/models/nebius.py +0 -0
  480. {agno-2.3.21 → agno-2.3.23}/agno/tools/models_labs.py +0 -0
  481. {agno-2.3.21 → agno-2.3.23}/agno/tools/moviepy_video.py +0 -0
  482. {agno-2.3.21 → agno-2.3.23}/agno/tools/nano_banana.py +0 -0
  483. {agno-2.3.21 → agno-2.3.23}/agno/tools/neo4j.py +0 -0
  484. {agno-2.3.21 → agno-2.3.23}/agno/tools/newspaper.py +0 -0
  485. {agno-2.3.21 → agno-2.3.23}/agno/tools/newspaper4k.py +0 -0
  486. {agno-2.3.21 → agno-2.3.23}/agno/tools/notion.py +0 -0
  487. {agno-2.3.21 → agno-2.3.23}/agno/tools/openai.py +0 -0
  488. {agno-2.3.21 → agno-2.3.23}/agno/tools/openbb.py +0 -0
  489. {agno-2.3.21 → agno-2.3.23}/agno/tools/opencv.py +0 -0
  490. {agno-2.3.21 → agno-2.3.23}/agno/tools/openweather.py +0 -0
  491. {agno-2.3.21 → agno-2.3.23}/agno/tools/oxylabs.py +0 -0
  492. {agno-2.3.21 → agno-2.3.23}/agno/tools/pandas.py +0 -0
  493. {agno-2.3.21 → agno-2.3.23}/agno/tools/parallel.py +0 -0
  494. {agno-2.3.21 → agno-2.3.23}/agno/tools/postgres.py +0 -0
  495. {agno-2.3.21 → agno-2.3.23}/agno/tools/pubmed.py +0 -0
  496. {agno-2.3.21 → agno-2.3.23}/agno/tools/python.py +0 -0
  497. {agno-2.3.21 → agno-2.3.23}/agno/tools/reasoning.py +0 -0
  498. {agno-2.3.21 → agno-2.3.23}/agno/tools/reddit.py +0 -0
  499. {agno-2.3.21 → agno-2.3.23}/agno/tools/redshift.py +0 -0
  500. {agno-2.3.21 → agno-2.3.23}/agno/tools/replicate.py +0 -0
  501. {agno-2.3.21 → agno-2.3.23}/agno/tools/resend.py +0 -0
  502. {agno-2.3.21 → agno-2.3.23}/agno/tools/scrapegraph.py +0 -0
  503. {agno-2.3.21 → agno-2.3.23}/agno/tools/searxng.py +0 -0
  504. {agno-2.3.21 → agno-2.3.23}/agno/tools/serpapi.py +0 -0
  505. {agno-2.3.21 → agno-2.3.23}/agno/tools/serper.py +0 -0
  506. {agno-2.3.21 → agno-2.3.23}/agno/tools/shell.py +0 -0
  507. {agno-2.3.21 → agno-2.3.23}/agno/tools/shopify.py +0 -0
  508. {agno-2.3.21 → agno-2.3.23}/agno/tools/slack.py +0 -0
  509. {agno-2.3.21 → agno-2.3.23}/agno/tools/sleep.py +0 -0
  510. {agno-2.3.21 → agno-2.3.23}/agno/tools/spider.py +0 -0
  511. {agno-2.3.21 → agno-2.3.23}/agno/tools/spotify.py +0 -0
  512. {agno-2.3.21 → agno-2.3.23}/agno/tools/sql.py +0 -0
  513. {agno-2.3.21 → agno-2.3.23}/agno/tools/streamlit/__init__.py +0 -0
  514. {agno-2.3.21 → agno-2.3.23}/agno/tools/streamlit/components.py +0 -0
  515. {agno-2.3.21 → agno-2.3.23}/agno/tools/tavily.py +0 -0
  516. {agno-2.3.21 → agno-2.3.23}/agno/tools/telegram.py +0 -0
  517. {agno-2.3.21 → agno-2.3.23}/agno/tools/todoist.py +0 -0
  518. {agno-2.3.21 → agno-2.3.23}/agno/tools/tool_registry.py +0 -0
  519. {agno-2.3.21 → agno-2.3.23}/agno/tools/trafilatura.py +0 -0
  520. {agno-2.3.21 → agno-2.3.23}/agno/tools/trello.py +0 -0
  521. {agno-2.3.21 → agno-2.3.23}/agno/tools/twilio.py +0 -0
  522. {agno-2.3.21 → agno-2.3.23}/agno/tools/user_control_flow.py +0 -0
  523. {agno-2.3.21 → agno-2.3.23}/agno/tools/valyu.py +0 -0
  524. {agno-2.3.21 → agno-2.3.23}/agno/tools/visualization.py +0 -0
  525. {agno-2.3.21 → agno-2.3.23}/agno/tools/webbrowser.py +0 -0
  526. {agno-2.3.21 → agno-2.3.23}/agno/tools/webex.py +0 -0
  527. {agno-2.3.21 → agno-2.3.23}/agno/tools/website.py +0 -0
  528. {agno-2.3.21 → agno-2.3.23}/agno/tools/webtools.py +0 -0
  529. {agno-2.3.21 → agno-2.3.23}/agno/tools/whatsapp.py +0 -0
  530. {agno-2.3.21 → agno-2.3.23}/agno/tools/wikipedia.py +0 -0
  531. {agno-2.3.21 → agno-2.3.23}/agno/tools/workflow.py +0 -0
  532. {agno-2.3.21 → agno-2.3.23}/agno/tools/x.py +0 -0
  533. {agno-2.3.21 → agno-2.3.23}/agno/tools/yfinance.py +0 -0
  534. {agno-2.3.21 → agno-2.3.23}/agno/tools/youtube.py +0 -0
  535. {agno-2.3.21 → agno-2.3.23}/agno/tools/zendesk.py +0 -0
  536. {agno-2.3.21 → agno-2.3.23}/agno/tools/zep.py +0 -0
  537. {agno-2.3.21 → agno-2.3.23}/agno/tools/zoom.py +0 -0
  538. {agno-2.3.21 → agno-2.3.23}/agno/tracing/__init__.py +0 -0
  539. {agno-2.3.21 → agno-2.3.23}/agno/tracing/exporter.py +0 -0
  540. {agno-2.3.21 → agno-2.3.23}/agno/tracing/schemas.py +0 -0
  541. {agno-2.3.21 → agno-2.3.23}/agno/tracing/setup.py +0 -0
  542. {agno-2.3.21 → agno-2.3.23}/agno/utils/__init__.py +0 -0
  543. {agno-2.3.21 → agno-2.3.23}/agno/utils/agent.py +0 -0
  544. {agno-2.3.21 → agno-2.3.23}/agno/utils/audio.py +0 -0
  545. {agno-2.3.21 → agno-2.3.23}/agno/utils/certs.py +0 -0
  546. {agno-2.3.21 → agno-2.3.23}/agno/utils/code_execution.py +0 -0
  547. {agno-2.3.21 → agno-2.3.23}/agno/utils/common.py +0 -0
  548. {agno-2.3.21 → agno-2.3.23}/agno/utils/cryptography.py +0 -0
  549. {agno-2.3.21 → agno-2.3.23}/agno/utils/dttm.py +0 -0
  550. {agno-2.3.21 → agno-2.3.23}/agno/utils/enum.py +0 -0
  551. {agno-2.3.21 → agno-2.3.23}/agno/utils/env.py +0 -0
  552. {agno-2.3.21 → agno-2.3.23}/agno/utils/events.py +0 -0
  553. {agno-2.3.21 → agno-2.3.23}/agno/utils/format_str.py +0 -0
  554. {agno-2.3.21 → agno-2.3.23}/agno/utils/functions.py +0 -0
  555. {agno-2.3.21 → agno-2.3.23}/agno/utils/gemini.py +0 -0
  556. {agno-2.3.21 → agno-2.3.23}/agno/utils/hooks.py +0 -0
  557. {agno-2.3.21 → agno-2.3.23}/agno/utils/http.py +0 -0
  558. {agno-2.3.21 → agno-2.3.23}/agno/utils/json_schema.py +0 -0
  559. {agno-2.3.21 → agno-2.3.23}/agno/utils/knowledge.py +0 -0
  560. {agno-2.3.21 → agno-2.3.23}/agno/utils/location.py +0 -0
  561. {agno-2.3.21 → agno-2.3.23}/agno/utils/log.py +0 -0
  562. {agno-2.3.21 → agno-2.3.23}/agno/utils/media.py +0 -0
  563. {agno-2.3.21 → agno-2.3.23}/agno/utils/merge_dict.py +0 -0
  564. {agno-2.3.21 → agno-2.3.23}/agno/utils/message.py +0 -0
  565. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/__init__.py +0 -0
  566. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/ai_foundry.py +0 -0
  567. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/claude.py +0 -0
  568. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/cohere.py +0 -0
  569. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/llama.py +0 -0
  570. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/mistral.py +0 -0
  571. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/openai_responses.py +0 -0
  572. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/schema_utils.py +0 -0
  573. {agno-2.3.21 → agno-2.3.23}/agno/utils/models/watsonx.py +0 -0
  574. {agno-2.3.21 → agno-2.3.23}/agno/utils/openai.py +0 -0
  575. {agno-2.3.21 → agno-2.3.23}/agno/utils/os.py +0 -0
  576. {agno-2.3.21 → agno-2.3.23}/agno/utils/pickle.py +0 -0
  577. {agno-2.3.21 → agno-2.3.23}/agno/utils/pprint.py +0 -0
  578. {agno-2.3.21 → agno-2.3.23}/agno/utils/print_response/__init__.py +0 -0
  579. {agno-2.3.21 → agno-2.3.23}/agno/utils/print_response/agent.py +0 -0
  580. {agno-2.3.21 → agno-2.3.23}/agno/utils/print_response/team.py +0 -0
  581. {agno-2.3.21 → agno-2.3.23}/agno/utils/print_response/workflow.py +0 -0
  582. {agno-2.3.21 → agno-2.3.23}/agno/utils/prompts.py +0 -0
  583. {agno-2.3.21 → agno-2.3.23}/agno/utils/reasoning.py +0 -0
  584. {agno-2.3.21 → agno-2.3.23}/agno/utils/remote.py +0 -0
  585. {agno-2.3.21 → agno-2.3.23}/agno/utils/response.py +0 -0
  586. {agno-2.3.21 → agno-2.3.23}/agno/utils/response_iterator.py +0 -0
  587. {agno-2.3.21 → agno-2.3.23}/agno/utils/safe_formatter.py +0 -0
  588. {agno-2.3.21 → agno-2.3.23}/agno/utils/serialize.py +0 -0
  589. {agno-2.3.21 → agno-2.3.23}/agno/utils/shell.py +0 -0
  590. {agno-2.3.21 → agno-2.3.23}/agno/utils/streamlit.py +0 -0
  591. {agno-2.3.21 → agno-2.3.23}/agno/utils/team.py +0 -0
  592. {agno-2.3.21 → agno-2.3.23}/agno/utils/timer.py +0 -0
  593. {agno-2.3.21 → agno-2.3.23}/agno/utils/tokens.py +0 -0
  594. {agno-2.3.21 → agno-2.3.23}/agno/utils/tools.py +0 -0
  595. {agno-2.3.21 → agno-2.3.23}/agno/utils/web.py +0 -0
  596. {agno-2.3.21 → agno-2.3.23}/agno/utils/whatsapp.py +0 -0
  597. {agno-2.3.21 → agno-2.3.23}/agno/utils/yaml_io.py +0 -0
  598. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/__init__.py +0 -0
  599. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/base.py +0 -0
  600. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/cassandra/__init__.py +0 -0
  601. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/cassandra/cassandra.py +0 -0
  602. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  603. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/cassandra/index.py +0 -0
  604. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/chroma/__init__.py +0 -0
  605. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/chroma/chromadb.py +0 -0
  606. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/clickhouse/__init__.py +0 -0
  607. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  608. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/clickhouse/index.py +0 -0
  609. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/couchbase/__init__.py +0 -0
  610. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/couchbase/couchbase.py +0 -0
  611. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/distance.py +0 -0
  612. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/lancedb/__init__.py +0 -0
  613. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/lancedb/lance_db.py +0 -0
  614. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/langchaindb/__init__.py +0 -0
  615. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/langchaindb/langchaindb.py +0 -0
  616. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/lightrag/__init__.py +0 -0
  617. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/lightrag/lightrag.py +0 -0
  618. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/llamaindex/__init__.py +0 -0
  619. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
  620. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/milvus/__init__.py +0 -0
  621. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/milvus/milvus.py +0 -0
  622. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/mongodb/__init__.py +0 -0
  623. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/mongodb/mongodb.py +0 -0
  624. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/pgvector/__init__.py +0 -0
  625. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/pgvector/index.py +0 -0
  626. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/pgvector/pgvector.py +0 -0
  627. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/pineconedb/__init__.py +0 -0
  628. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  629. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/qdrant/__init__.py +0 -0
  630. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/qdrant/qdrant.py +0 -0
  631. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/redis/__init__.py +0 -0
  632. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/redis/redisdb.py +0 -0
  633. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/search.py +0 -0
  634. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/singlestore/__init__.py +0 -0
  635. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/singlestore/index.py +0 -0
  636. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/singlestore/singlestore.py +0 -0
  637. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/surrealdb/__init__.py +0 -0
  638. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  639. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/upstashdb/__init__.py +0 -0
  640. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  641. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/weaviate/__init__.py +0 -0
  642. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/weaviate/index.py +0 -0
  643. {agno-2.3.21 → agno-2.3.23}/agno/vectordb/weaviate/weaviate.py +0 -0
  644. {agno-2.3.21 → agno-2.3.23}/agno/workflow/__init__.py +0 -0
  645. {agno-2.3.21 → agno-2.3.23}/agno/workflow/agent.py +0 -0
  646. {agno-2.3.21 → agno-2.3.23}/agno/workflow/parallel.py +0 -0
  647. {agno-2.3.21 → agno-2.3.23}/agno/workflow/step.py +0 -0
  648. {agno-2.3.21 → agno-2.3.23}/agno/workflow/types.py +0 -0
  649. {agno-2.3.21 → agno-2.3.23}/agno.egg-info/dependency_links.txt +0 -0
  650. {agno-2.3.21 → agno-2.3.23}/agno.egg-info/top_level.txt +0 -0
  651. {agno-2.3.21 → agno-2.3.23}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.3.21
3
+ Version: 2.3.23
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"
@@ -425,23 +425,22 @@ Dynamic: license-file
425
425
 
426
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
- - **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
428
+ - **Build** agents, teams, and workflows with memory, knowledge, guardrails and 100+ integrations.
429
429
  - **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
430
430
  - **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
431
431
 
432
432
  ## Why Agno?
433
433
 
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
+ - **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.
437
437
 
438
438
  ## Getting Started
439
439
 
440
- New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
440
+ Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started), then:
441
441
 
442
- Then:
443
442
  - 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.
443
+ - Read the [docs](https://docs.agno.com) to learn more
445
444
 
446
445
  ## Resources
447
446
 
@@ -509,26 +508,26 @@ This isn't a privacy mode or enterprise add-on. It's how Agno works.
509
508
 
510
509
  ## Features
511
510
 
512
- **Core**
511
+ ### Core:
513
512
  - Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
514
513
  - Type-safe I/O with `input_schema` and `output_schema`
515
514
  - Async-first, built for long-running tasks
516
515
  - Natively multimodal (text, images, audio, video, files)
517
516
 
518
- **Memory & Knowledge**
517
+ ### Memory & Knowledge:
519
518
  - Persistent storage for session history and state
520
519
  - User memory that persists across sessions
521
520
  - Agentic RAG with 20+ vector stores, hybrid search, reranking
522
521
  - Culture — shared long-term memory across agents
523
522
 
524
- **Execution**
523
+ ### Execution:
525
524
  - Human-in-the-loop (confirmations, approvals, overrides)
526
525
  - Guardrails for validation and security
527
526
  - Pre/post hooks for the agent lifecycle
528
527
  - First-class MCP and A2A support
529
528
  - 100+ built-in toolkits
530
529
 
531
- **Production**
530
+ ### Production:
532
531
  - Ready-to-use FastAPI runtime
533
532
  - Integrated control plane UI
534
533
  - Evals for accuracy, performance, latency
@@ -546,7 +545,7 @@ We're obsessive about performance because agent workloads spawn hundreds of inst
546
545
  | Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
547
546
  | Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
548
547
 
549
- Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
548
+ Run the benchmarks yourself: [`cookbook/12_evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/12_evals/performance)
550
549
 
551
550
  https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
552
551
 
@@ -21,23 +21,22 @@
21
21
 
22
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
23
 
24
- - **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
24
+ - **Build** agents, teams, and workflows with memory, knowledge, guardrails and 100+ integrations.
25
25
  - **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
26
26
  - **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
27
27
 
28
28
  ## Why Agno?
29
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.
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
33
 
34
34
  ## Getting Started
35
35
 
36
- New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
36
+ Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started), then:
37
37
 
38
- Then:
39
38
  - 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.
39
+ - Read the [docs](https://docs.agno.com) to learn more
41
40
 
42
41
  ## Resources
43
42
 
@@ -105,26 +104,26 @@ This isn't a privacy mode or enterprise add-on. It's how Agno works.
105
104
 
106
105
  ## Features
107
106
 
108
- **Core**
107
+ ### Core:
109
108
  - Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
110
109
  - Type-safe I/O with `input_schema` and `output_schema`
111
110
  - Async-first, built for long-running tasks
112
111
  - Natively multimodal (text, images, audio, video, files)
113
112
 
114
- **Memory & Knowledge**
113
+ ### Memory & Knowledge:
115
114
  - Persistent storage for session history and state
116
115
  - User memory that persists across sessions
117
116
  - Agentic RAG with 20+ vector stores, hybrid search, reranking
118
117
  - Culture — shared long-term memory across agents
119
118
 
120
- **Execution**
119
+ ### Execution:
121
120
  - Human-in-the-loop (confirmations, approvals, overrides)
122
121
  - Guardrails for validation and security
123
122
  - Pre/post hooks for the agent lifecycle
124
123
  - First-class MCP and A2A support
125
124
  - 100+ built-in toolkits
126
125
 
127
- **Production**
126
+ ### Production:
128
127
  - Ready-to-use FastAPI runtime
129
128
  - Integrated control plane UI
130
129
  - Evals for accuracy, performance, latency
@@ -142,7 +141,7 @@ We're obsessive about performance because agent workloads spawn hundreds of inst
142
141
  | Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
143
142
  | Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
144
143
 
145
- Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
144
+ Run the benchmarks yourself: [`cookbook/12_evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/12_evals/performance)
146
145
 
147
146
  https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
148
147
 
@@ -61,6 +61,9 @@ from agno.run.agent import (
61
61
  RunOutput,
62
62
  RunOutputEvent,
63
63
  )
64
+ from agno.run.cancel import (
65
+ acancel_run as acancel_run_global,
66
+ )
64
67
  from agno.run.cancel import (
65
68
  acleanup_run,
66
69
  araise_if_cancelled,
@@ -77,6 +80,7 @@ from agno.run.requirement import RunRequirement
77
80
  from agno.run.team import TeamRunOutputEvent
78
81
  from agno.session import AgentSession, SessionSummaryManager, TeamSession, WorkflowSession
79
82
  from agno.session.summary import SessionSummary
83
+ from agno.skills import Skills
80
84
  from agno.tools import Toolkit
81
85
  from agno.tools.function import Function
82
86
  from agno.utils.agent import (
@@ -264,6 +268,10 @@ class Agent:
264
268
  knowledge_retriever: Optional[Callable[..., Optional[List[Union[Dict, str]]]]] = None
265
269
  references_format: Literal["json", "yaml"] = "json"
266
270
 
271
+ # --- Skills ---
272
+ # Skills provide structured instructions, reference docs, and scripts for agents
273
+ skills: Optional[Skills] = None
274
+
267
275
  # --- Agent Tools ---
268
276
  # A list of tools provided to the Model.
269
277
  # Tools are functions the model may generate JSON inputs for.
@@ -487,6 +495,7 @@ class Agent:
487
495
  add_knowledge_to_context: bool = False,
488
496
  knowledge_retriever: Optional[Callable[..., Optional[List[Union[Dict, str]]]]] = None,
489
497
  references_format: Literal["json", "yaml"] = "json",
498
+ skills: Optional[Skills] = None,
490
499
  metadata: Optional[Dict[str, Any]] = None,
491
500
  tools: Optional[Sequence[Union[Toolkit, Callable, Function, Dict]]] = None,
492
501
  tool_call_limit: Optional[int] = None,
@@ -610,6 +619,8 @@ class Agent:
610
619
  self.knowledge_retriever = knowledge_retriever
611
620
  self.references_format = references_format
612
621
 
622
+ self.skills = skills
623
+
613
624
  self.metadata = metadata
614
625
 
615
626
  self.tools = list(tools) if tools else []
@@ -2022,6 +2033,7 @@ class Agent:
2022
2033
  run_response=run_response,
2023
2034
  run_context=run_context,
2024
2035
  session=agent_session,
2036
+ async_mode=True,
2025
2037
  )
2026
2038
 
2027
2039
  # 6. Prepare run messages
@@ -2369,6 +2381,7 @@ class Agent:
2369
2381
  run_response=run_response,
2370
2382
  run_context=run_context,
2371
2383
  session=agent_session,
2384
+ async_mode=True,
2372
2385
  )
2373
2386
 
2374
2387
  # 6. Prepare run messages
@@ -3979,6 +3992,7 @@ class Agent:
3979
3992
  run_response=run_response,
3980
3993
  run_context=run_context,
3981
3994
  session=agent_session,
3995
+ async_mode=True,
3982
3996
  )
3983
3997
 
3984
3998
  # 6. Prepare run messages
@@ -4285,6 +4299,7 @@ class Agent:
4285
4299
  run_response=run_response,
4286
4300
  run_context=run_context,
4287
4301
  session=agent_session,
4302
+ async_mode=True,
4288
4303
  )
4289
4304
 
4290
4305
  # 6. Prepare run messages
@@ -6396,6 +6411,10 @@ class Agent:
6396
6411
  if self.update_knowledge:
6397
6412
  agent_tools.append(self.add_to_knowledge)
6398
6413
 
6414
+ # Add tools for accessing skills
6415
+ if self.skills is not None:
6416
+ agent_tools.extend(self.skills.get_tools())
6417
+
6399
6418
  return agent_tools
6400
6419
 
6401
6420
  async def aget_tools(
@@ -6489,6 +6508,10 @@ class Agent:
6489
6508
  if self.update_knowledge:
6490
6509
  agent_tools.append(self.add_to_knowledge)
6491
6510
 
6511
+ # Add tools for accessing skills
6512
+ if self.skills is not None:
6513
+ agent_tools.extend(self.skills.get_tools())
6514
+
6492
6515
  return agent_tools
6493
6516
 
6494
6517
  def _determine_tools_for_model(
@@ -6498,6 +6521,7 @@ class Agent:
6498
6521
  run_response: RunOutput,
6499
6522
  run_context: RunContext,
6500
6523
  session: AgentSession,
6524
+ async_mode: bool = False,
6501
6525
  ) -> List[Union[Function, dict]]:
6502
6526
  _function_names = []
6503
6527
  _functions: List[Union[Function, dict]] = []
@@ -6528,7 +6552,8 @@ class Agent:
6528
6552
 
6529
6553
  elif isinstance(tool, Toolkit):
6530
6554
  # For each function in the toolkit and process entrypoint
6531
- for name, _func in tool.functions.items():
6555
+ toolkit_functions = tool.get_async_functions() if async_mode else tool.get_functions()
6556
+ for name, _func in toolkit_functions.items():
6532
6557
  if name in _function_names:
6533
6558
  continue
6534
6559
  _function_names.append(name)
@@ -6758,6 +6783,18 @@ class Agent:
6758
6783
  """
6759
6784
  return cancel_run_global(run_id)
6760
6785
 
6786
+ @staticmethod
6787
+ async def acancel_run(run_id: str) -> bool:
6788
+ """Cancel a running agent execution (async version).
6789
+
6790
+ Args:
6791
+ run_id (str): The run_id to cancel.
6792
+
6793
+ Returns:
6794
+ bool: True if the run was found and marked for cancellation, False otherwise.
6795
+ """
6796
+ return await acancel_run_global(run_id)
6797
+
6761
6798
  # -*- Session Database Functions
6762
6799
  def _read_session(
6763
6800
  self, session_id: str, session_type: SessionType = SessionType.AGENT
@@ -7171,7 +7208,6 @@ class Agent:
7171
7208
  """
7172
7209
  if self._has_async_db():
7173
7210
  raise ValueError("Async database not supported for save_session")
7174
-
7175
7211
  # If the agent is a member of a team, do not save the session to the database
7176
7212
  if (
7177
7213
  self.db is not None
@@ -7937,6 +7973,11 @@ class Agent:
7937
7973
  # 3.3.8 Then add additional context
7938
7974
  if self.additional_context is not None:
7939
7975
  system_message_content += f"{self.additional_context}\n"
7976
+ # 3.3.8.1 Then add skills to the system prompt
7977
+ if self.skills is not None:
7978
+ skills_snippet = self.skills.get_system_prompt_snippet()
7979
+ if skills_snippet:
7980
+ system_message_content += f"\n{skills_snippet}\n"
7940
7981
  # 3.3.9 Then add memories to the system prompt
7941
7982
  if self.add_memories_to_context:
7942
7983
  _memory_manager_not_set = False
@@ -8281,6 +8322,11 @@ class Agent:
8281
8322
  # 3.3.8 Then add additional context
8282
8323
  if self.additional_context is not None:
8283
8324
  system_message_content += f"{self.additional_context}\n"
8325
+ # 3.3.8.1 Then add skills to the system prompt
8326
+ if self.skills is not None:
8327
+ skills_snippet = self.skills.get_system_prompt_snippet()
8328
+ if skills_snippet:
8329
+ system_message_content += f"\n{skills_snippet}\n"
8284
8330
  # 3.3.9 Then add memories to the system prompt
8285
8331
  if self.add_memories_to_context:
8286
8332
  _memory_manager_not_set = False