agno 2.4.4__tar.gz → 2.4.5__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 (686) hide show
  1. {agno-2.4.4 → agno-2.4.5}/PKG-INFO +4 -1
  2. {agno-2.4.4 → agno-2.4.5}/agno/agent/agent.py +45 -38
  3. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/knowledge.py +8 -10
  4. {agno-2.4.4 → agno-2.4.5}/agno/team/team.py +27 -20
  5. agno-2.4.5/agno/tools/seltz.py +134 -0
  6. {agno-2.4.4 → agno-2.4.5}/agno.egg-info/PKG-INFO +4 -1
  7. {agno-2.4.4 → agno-2.4.5}/agno.egg-info/SOURCES.txt +1 -0
  8. {agno-2.4.4 → agno-2.4.5}/agno.egg-info/requires.txt +4 -0
  9. {agno-2.4.4 → agno-2.4.5}/pyproject.toml +4 -1
  10. {agno-2.4.4 → agno-2.4.5}/LICENSE +0 -0
  11. {agno-2.4.4 → agno-2.4.5}/README.md +0 -0
  12. {agno-2.4.4 → agno-2.4.5}/agno/__init__.py +0 -0
  13. {agno-2.4.4 → agno-2.4.5}/agno/agent/__init__.py +0 -0
  14. {agno-2.4.4 → agno-2.4.5}/agno/agent/remote.py +0 -0
  15. {agno-2.4.4 → agno-2.4.5}/agno/api/__init__.py +0 -0
  16. {agno-2.4.4 → agno-2.4.5}/agno/api/agent.py +0 -0
  17. {agno-2.4.4 → agno-2.4.5}/agno/api/api.py +0 -0
  18. {agno-2.4.4 → agno-2.4.5}/agno/api/evals.py +0 -0
  19. {agno-2.4.4 → agno-2.4.5}/agno/api/os.py +0 -0
  20. {agno-2.4.4 → agno-2.4.5}/agno/api/routes.py +0 -0
  21. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/__init__.py +0 -0
  22. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/agent.py +0 -0
  23. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/evals.py +0 -0
  24. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/os.py +0 -0
  25. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/response.py +0 -0
  26. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/team.py +0 -0
  27. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/utils.py +0 -0
  28. {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/workflows.py +0 -0
  29. {agno-2.4.4 → agno-2.4.5}/agno/api/settings.py +0 -0
  30. {agno-2.4.4 → agno-2.4.5}/agno/api/team.py +0 -0
  31. {agno-2.4.4 → agno-2.4.5}/agno/api/workflow.py +0 -0
  32. {agno-2.4.4 → agno-2.4.5}/agno/client/__init__.py +0 -0
  33. {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/__init__.py +0 -0
  34. {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/client.py +0 -0
  35. {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/schemas.py +0 -0
  36. {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/utils.py +0 -0
  37. {agno-2.4.4 → agno-2.4.5}/agno/client/os.py +0 -0
  38. {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/base.py +0 -0
  39. {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/__init__.py +0 -0
  40. {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/api_client.py +0 -0
  41. {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/bucket.py +0 -0
  42. {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/object.py +0 -0
  43. {agno-2.4.4 → agno-2.4.5}/agno/compression/__init__.py +0 -0
  44. {agno-2.4.4 → agno-2.4.5}/agno/compression/manager.py +0 -0
  45. {agno-2.4.4 → agno-2.4.5}/agno/culture/__init__.py +0 -0
  46. {agno-2.4.4 → agno-2.4.5}/agno/culture/manager.py +0 -0
  47. {agno-2.4.4 → agno-2.4.5}/agno/db/__init__.py +0 -0
  48. {agno-2.4.4 → agno-2.4.5}/agno/db/async_postgres/__init__.py +0 -0
  49. {agno-2.4.4 → agno-2.4.5}/agno/db/base.py +0 -0
  50. {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/__init__.py +0 -0
  51. {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/dynamo.py +0 -0
  52. {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/schemas.py +0 -0
  53. {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/utils.py +0 -0
  54. {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/__init__.py +0 -0
  55. {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/firestore.py +0 -0
  56. {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/schemas.py +0 -0
  57. {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/utils.py +0 -0
  58. {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/__init__.py +0 -0
  59. {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/gcs_json_db.py +0 -0
  60. {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/utils.py +0 -0
  61. {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/__init__.py +0 -0
  62. {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/in_memory_db.py +0 -0
  63. {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/utils.py +0 -0
  64. {agno-2.4.4 → agno-2.4.5}/agno/db/json/__init__.py +0 -0
  65. {agno-2.4.4 → agno-2.4.5}/agno/db/json/json_db.py +0 -0
  66. {agno-2.4.4 → agno-2.4.5}/agno/db/json/utils.py +0 -0
  67. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/__init__.py +0 -0
  68. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/manager.py +0 -0
  69. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/utils.py +0 -0
  70. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/v1_to_v2.py +0 -0
  71. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/versions/__init__.py +0 -0
  72. {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/versions/v2_3_0.py +0 -0
  73. {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/__init__.py +0 -0
  74. {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/async_mongo.py +0 -0
  75. {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/mongo.py +0 -0
  76. {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/schemas.py +0 -0
  77. {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/utils.py +0 -0
  78. {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/__init__.py +0 -0
  79. {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/async_mysql.py +0 -0
  80. {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/mysql.py +0 -0
  81. {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/schemas.py +0 -0
  82. {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/utils.py +0 -0
  83. {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/__init__.py +0 -0
  84. {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/async_postgres.py +0 -0
  85. {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/postgres.py +0 -0
  86. {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/schemas.py +0 -0
  87. {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/utils.py +0 -0
  88. {agno-2.4.4 → agno-2.4.5}/agno/db/redis/__init__.py +0 -0
  89. {agno-2.4.4 → agno-2.4.5}/agno/db/redis/redis.py +0 -0
  90. {agno-2.4.4 → agno-2.4.5}/agno/db/redis/schemas.py +0 -0
  91. {agno-2.4.4 → agno-2.4.5}/agno/db/redis/utils.py +0 -0
  92. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/__init__.py +0 -0
  93. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/culture.py +0 -0
  94. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/evals.py +0 -0
  95. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/knowledge.py +0 -0
  96. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/memory.py +0 -0
  97. {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/metrics.py +0 -0
  98. {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/__init__.py +0 -0
  99. {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/schemas.py +0 -0
  100. {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/singlestore.py +0 -0
  101. {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/utils.py +0 -0
  102. {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/__init__.py +0 -0
  103. {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/async_sqlite.py +0 -0
  104. {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/schemas.py +0 -0
  105. {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/sqlite.py +0 -0
  106. {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/utils.py +0 -0
  107. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/__init__.py +0 -0
  108. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/metrics.py +0 -0
  109. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/models.py +0 -0
  110. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/queries.py +0 -0
  111. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/surrealdb.py +0 -0
  112. {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/utils.py +0 -0
  113. {agno-2.4.4 → agno-2.4.5}/agno/db/utils.py +0 -0
  114. {agno-2.4.4 → agno-2.4.5}/agno/debug.py +0 -0
  115. {agno-2.4.4 → agno-2.4.5}/agno/eval/__init__.py +0 -0
  116. {agno-2.4.4 → agno-2.4.5}/agno/eval/accuracy.py +0 -0
  117. {agno-2.4.4 → agno-2.4.5}/agno/eval/agent_as_judge.py +0 -0
  118. {agno-2.4.4 → agno-2.4.5}/agno/eval/base.py +0 -0
  119. {agno-2.4.4 → agno-2.4.5}/agno/eval/performance.py +0 -0
  120. {agno-2.4.4 → agno-2.4.5}/agno/eval/reliability.py +0 -0
  121. {agno-2.4.4 → agno-2.4.5}/agno/eval/utils.py +0 -0
  122. {agno-2.4.4 → agno-2.4.5}/agno/exceptions.py +0 -0
  123. {agno-2.4.4 → agno-2.4.5}/agno/filters.py +0 -0
  124. {agno-2.4.4 → agno-2.4.5}/agno/guardrails/__init__.py +0 -0
  125. {agno-2.4.4 → agno-2.4.5}/agno/guardrails/base.py +0 -0
  126. {agno-2.4.4 → agno-2.4.5}/agno/guardrails/openai.py +0 -0
  127. {agno-2.4.4 → agno-2.4.5}/agno/guardrails/pii.py +0 -0
  128. {agno-2.4.4 → agno-2.4.5}/agno/guardrails/prompt_injection.py +0 -0
  129. {agno-2.4.4 → agno-2.4.5}/agno/hooks/__init__.py +0 -0
  130. {agno-2.4.4 → agno-2.4.5}/agno/hooks/decorator.py +0 -0
  131. {agno-2.4.4 → agno-2.4.5}/agno/integrations/__init__.py +0 -0
  132. {agno-2.4.4 → agno-2.4.5}/agno/integrations/discord/__init__.py +0 -0
  133. {agno-2.4.4 → agno-2.4.5}/agno/integrations/discord/client.py +0 -0
  134. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/__init__.py +0 -0
  135. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/__init__.py +0 -0
  136. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/agentic.py +0 -0
  137. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/code.py +0 -0
  138. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/document.py +0 -0
  139. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/fixed.py +0 -0
  140. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/markdown.py +0 -0
  141. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/recursive.py +0 -0
  142. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/row.py +0 -0
  143. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/semantic.py +0 -0
  144. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/strategy.py +0 -0
  145. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/content.py +0 -0
  146. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/document/__init__.py +0 -0
  147. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/document/base.py +0 -0
  148. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/__init__.py +0 -0
  149. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/aws_bedrock.py +0 -0
  150. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/azure_openai.py +0 -0
  151. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/base.py +0 -0
  152. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/cohere.py +0 -0
  153. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/fastembed.py +0 -0
  154. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/fireworks.py +0 -0
  155. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/google.py +0 -0
  156. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/huggingface.py +0 -0
  157. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/jina.py +0 -0
  158. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/langdb.py +0 -0
  159. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/mistral.py +0 -0
  160. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/nebius.py +0 -0
  161. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/ollama.py +0 -0
  162. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/openai.py +0 -0
  163. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/sentence_transformer.py +0 -0
  164. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/together.py +0 -0
  165. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/vllm.py +0 -0
  166. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/voyageai.py +0 -0
  167. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/filesystem.py +0 -0
  168. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/protocol.py +0 -0
  169. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/__init__.py +0 -0
  170. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/arxiv_reader.py +0 -0
  171. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/base.py +0 -0
  172. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/csv_reader.py +0 -0
  173. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/docx_reader.py +0 -0
  174. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/excel_reader.py +0 -0
  175. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
  176. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/firecrawl_reader.py +0 -0
  177. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/json_reader.py +0 -0
  178. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/markdown_reader.py +0 -0
  179. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/pdf_reader.py +0 -0
  180. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/pptx_reader.py +0 -0
  181. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/reader_factory.py +0 -0
  182. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/s3_reader.py +0 -0
  183. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/tavily_reader.py +0 -0
  184. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/text_reader.py +0 -0
  185. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/utils/__init__.py +0 -0
  186. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/utils/spreadsheet.py +0 -0
  187. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/web_search_reader.py +0 -0
  188. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/website_reader.py +0 -0
  189. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/wikipedia_reader.py +0 -0
  190. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/youtube_reader.py +0 -0
  191. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/__init__.py +0 -0
  192. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/config.py +0 -0
  193. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/remote_content.py +0 -0
  194. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/__init__.py +0 -0
  195. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/base.py +0 -0
  196. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/cohere.py +0 -0
  197. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/infinity.py +0 -0
  198. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/sentence_transformer.py +0 -0
  199. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/types.py +0 -0
  200. {agno-2.4.4 → agno-2.4.5}/agno/knowledge/utils.py +0 -0
  201. {agno-2.4.4 → agno-2.4.5}/agno/learn/__init__.py +0 -0
  202. {agno-2.4.4 → agno-2.4.5}/agno/learn/config.py +0 -0
  203. {agno-2.4.4 → agno-2.4.5}/agno/learn/curate.py +0 -0
  204. {agno-2.4.4 → agno-2.4.5}/agno/learn/machine.py +0 -0
  205. {agno-2.4.4 → agno-2.4.5}/agno/learn/schemas.py +0 -0
  206. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/__init__.py +0 -0
  207. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/decision_log.py +0 -0
  208. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/entity_memory.py +0 -0
  209. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/learned_knowledge.py +0 -0
  210. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/protocol.py +0 -0
  211. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/session_context.py +0 -0
  212. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/user_memory.py +0 -0
  213. {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/user_profile.py +0 -0
  214. {agno-2.4.4 → agno-2.4.5}/agno/learn/utils.py +0 -0
  215. {agno-2.4.4 → agno-2.4.5}/agno/media.py +0 -0
  216. {agno-2.4.4 → agno-2.4.5}/agno/memory/__init__.py +0 -0
  217. {agno-2.4.4 → agno-2.4.5}/agno/memory/manager.py +0 -0
  218. {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/__init__.py +0 -0
  219. {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/base.py +0 -0
  220. {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/summarize.py +0 -0
  221. {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/types.py +0 -0
  222. {agno-2.4.4 → agno-2.4.5}/agno/models/__init__.py +0 -0
  223. {agno-2.4.4 → agno-2.4.5}/agno/models/aimlapi/__init__.py +0 -0
  224. {agno-2.4.4 → agno-2.4.5}/agno/models/aimlapi/aimlapi.py +0 -0
  225. {agno-2.4.4 → agno-2.4.5}/agno/models/anthropic/__init__.py +0 -0
  226. {agno-2.4.4 → agno-2.4.5}/agno/models/anthropic/claude.py +0 -0
  227. {agno-2.4.4 → agno-2.4.5}/agno/models/aws/__init__.py +0 -0
  228. {agno-2.4.4 → agno-2.4.5}/agno/models/aws/bedrock.py +0 -0
  229. {agno-2.4.4 → agno-2.4.5}/agno/models/aws/claude.py +0 -0
  230. {agno-2.4.4 → agno-2.4.5}/agno/models/azure/__init__.py +0 -0
  231. {agno-2.4.4 → agno-2.4.5}/agno/models/azure/ai_foundry.py +0 -0
  232. {agno-2.4.4 → agno-2.4.5}/agno/models/azure/openai_chat.py +0 -0
  233. {agno-2.4.4 → agno-2.4.5}/agno/models/base.py +0 -0
  234. {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/__init__.py +0 -0
  235. {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/cerebras.py +0 -0
  236. {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/cerebras_openai.py +0 -0
  237. {agno-2.4.4 → agno-2.4.5}/agno/models/cohere/__init__.py +0 -0
  238. {agno-2.4.4 → agno-2.4.5}/agno/models/cohere/chat.py +0 -0
  239. {agno-2.4.4 → agno-2.4.5}/agno/models/cometapi/__init__.py +0 -0
  240. {agno-2.4.4 → agno-2.4.5}/agno/models/cometapi/cometapi.py +0 -0
  241. {agno-2.4.4 → agno-2.4.5}/agno/models/dashscope/__init__.py +0 -0
  242. {agno-2.4.4 → agno-2.4.5}/agno/models/dashscope/dashscope.py +0 -0
  243. {agno-2.4.4 → agno-2.4.5}/agno/models/deepinfra/__init__.py +0 -0
  244. {agno-2.4.4 → agno-2.4.5}/agno/models/deepinfra/deepinfra.py +0 -0
  245. {agno-2.4.4 → agno-2.4.5}/agno/models/deepseek/__init__.py +0 -0
  246. {agno-2.4.4 → agno-2.4.5}/agno/models/deepseek/deepseek.py +0 -0
  247. {agno-2.4.4 → agno-2.4.5}/agno/models/defaults.py +0 -0
  248. {agno-2.4.4 → agno-2.4.5}/agno/models/fireworks/__init__.py +0 -0
  249. {agno-2.4.4 → agno-2.4.5}/agno/models/fireworks/fireworks.py +0 -0
  250. {agno-2.4.4 → agno-2.4.5}/agno/models/google/__init__.py +0 -0
  251. {agno-2.4.4 → agno-2.4.5}/agno/models/google/gemini.py +0 -0
  252. {agno-2.4.4 → agno-2.4.5}/agno/models/google/utils.py +0 -0
  253. {agno-2.4.4 → agno-2.4.5}/agno/models/groq/__init__.py +0 -0
  254. {agno-2.4.4 → agno-2.4.5}/agno/models/groq/groq.py +0 -0
  255. {agno-2.4.4 → agno-2.4.5}/agno/models/huggingface/__init__.py +0 -0
  256. {agno-2.4.4 → agno-2.4.5}/agno/models/huggingface/huggingface.py +0 -0
  257. {agno-2.4.4 → agno-2.4.5}/agno/models/ibm/__init__.py +0 -0
  258. {agno-2.4.4 → agno-2.4.5}/agno/models/ibm/watsonx.py +0 -0
  259. {agno-2.4.4 → agno-2.4.5}/agno/models/internlm/__init__.py +0 -0
  260. {agno-2.4.4 → agno-2.4.5}/agno/models/internlm/internlm.py +0 -0
  261. {agno-2.4.4 → agno-2.4.5}/agno/models/langdb/__init__.py +0 -0
  262. {agno-2.4.4 → agno-2.4.5}/agno/models/langdb/langdb.py +0 -0
  263. {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/__init__.py +0 -0
  264. {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/chat.py +0 -0
  265. {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/litellm_openai.py +0 -0
  266. {agno-2.4.4 → agno-2.4.5}/agno/models/llama_cpp/__init__.py +0 -0
  267. {agno-2.4.4 → agno-2.4.5}/agno/models/llama_cpp/llama_cpp.py +0 -0
  268. {agno-2.4.4 → agno-2.4.5}/agno/models/lmstudio/__init__.py +0 -0
  269. {agno-2.4.4 → agno-2.4.5}/agno/models/lmstudio/lmstudio.py +0 -0
  270. {agno-2.4.4 → agno-2.4.5}/agno/models/message.py +0 -0
  271. {agno-2.4.4 → agno-2.4.5}/agno/models/meta/__init__.py +0 -0
  272. {agno-2.4.4 → agno-2.4.5}/agno/models/meta/llama.py +0 -0
  273. {agno-2.4.4 → agno-2.4.5}/agno/models/meta/llama_openai.py +0 -0
  274. {agno-2.4.4 → agno-2.4.5}/agno/models/metrics.py +0 -0
  275. {agno-2.4.4 → agno-2.4.5}/agno/models/mistral/__init__.py +0 -0
  276. {agno-2.4.4 → agno-2.4.5}/agno/models/mistral/mistral.py +0 -0
  277. {agno-2.4.4 → agno-2.4.5}/agno/models/moonshot/__init__.py +0 -0
  278. {agno-2.4.4 → agno-2.4.5}/agno/models/moonshot/moonshot.py +0 -0
  279. {agno-2.4.4 → agno-2.4.5}/agno/models/n1n/__init__.py +0 -0
  280. {agno-2.4.4 → agno-2.4.5}/agno/models/n1n/n1n.py +0 -0
  281. {agno-2.4.4 → agno-2.4.5}/agno/models/nebius/__init__.py +0 -0
  282. {agno-2.4.4 → agno-2.4.5}/agno/models/nebius/nebius.py +0 -0
  283. {agno-2.4.4 → agno-2.4.5}/agno/models/nexus/__init__.py +0 -0
  284. {agno-2.4.4 → agno-2.4.5}/agno/models/nexus/nexus.py +0 -0
  285. {agno-2.4.4 → agno-2.4.5}/agno/models/nvidia/__init__.py +0 -0
  286. {agno-2.4.4 → agno-2.4.5}/agno/models/nvidia/nvidia.py +0 -0
  287. {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/__init__.py +0 -0
  288. {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/chat.py +0 -0
  289. {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/responses.py +0 -0
  290. {agno-2.4.4 → agno-2.4.5}/agno/models/openai/__init__.py +0 -0
  291. {agno-2.4.4 → agno-2.4.5}/agno/models/openai/chat.py +0 -0
  292. {agno-2.4.4 → agno-2.4.5}/agno/models/openai/like.py +0 -0
  293. {agno-2.4.4 → agno-2.4.5}/agno/models/openai/open_responses.py +0 -0
  294. {agno-2.4.4 → agno-2.4.5}/agno/models/openai/responses.py +0 -0
  295. {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/__init__.py +0 -0
  296. {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/openrouter.py +0 -0
  297. {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/responses.py +0 -0
  298. {agno-2.4.4 → agno-2.4.5}/agno/models/perplexity/__init__.py +0 -0
  299. {agno-2.4.4 → agno-2.4.5}/agno/models/perplexity/perplexity.py +0 -0
  300. {agno-2.4.4 → agno-2.4.5}/agno/models/portkey/__init__.py +0 -0
  301. {agno-2.4.4 → agno-2.4.5}/agno/models/portkey/portkey.py +0 -0
  302. {agno-2.4.4 → agno-2.4.5}/agno/models/requesty/__init__.py +0 -0
  303. {agno-2.4.4 → agno-2.4.5}/agno/models/requesty/requesty.py +0 -0
  304. {agno-2.4.4 → agno-2.4.5}/agno/models/response.py +0 -0
  305. {agno-2.4.4 → agno-2.4.5}/agno/models/sambanova/__init__.py +0 -0
  306. {agno-2.4.4 → agno-2.4.5}/agno/models/sambanova/sambanova.py +0 -0
  307. {agno-2.4.4 → agno-2.4.5}/agno/models/siliconflow/__init__.py +0 -0
  308. {agno-2.4.4 → agno-2.4.5}/agno/models/siliconflow/siliconflow.py +0 -0
  309. {agno-2.4.4 → agno-2.4.5}/agno/models/together/__init__.py +0 -0
  310. {agno-2.4.4 → agno-2.4.5}/agno/models/together/together.py +0 -0
  311. {agno-2.4.4 → agno-2.4.5}/agno/models/utils.py +0 -0
  312. {agno-2.4.4 → agno-2.4.5}/agno/models/vercel/__init__.py +0 -0
  313. {agno-2.4.4 → agno-2.4.5}/agno/models/vercel/v0.py +0 -0
  314. {agno-2.4.4 → agno-2.4.5}/agno/models/vertexai/__init__.py +0 -0
  315. {agno-2.4.4 → agno-2.4.5}/agno/models/vertexai/claude.py +0 -0
  316. {agno-2.4.4 → agno-2.4.5}/agno/models/vllm/__init__.py +0 -0
  317. {agno-2.4.4 → agno-2.4.5}/agno/models/vllm/vllm.py +0 -0
  318. {agno-2.4.4 → agno-2.4.5}/agno/models/xai/__init__.py +0 -0
  319. {agno-2.4.4 → agno-2.4.5}/agno/models/xai/xai.py +0 -0
  320. {agno-2.4.4 → agno-2.4.5}/agno/os/__init__.py +0 -0
  321. {agno-2.4.4 → agno-2.4.5}/agno/os/app.py +0 -0
  322. {agno-2.4.4 → agno-2.4.5}/agno/os/auth.py +0 -0
  323. {agno-2.4.4 → agno-2.4.5}/agno/os/config.py +0 -0
  324. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/__init__.py +0 -0
  325. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/__init__.py +0 -0
  326. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/a2a.py +0 -0
  327. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/router.py +0 -0
  328. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/utils.py +0 -0
  329. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/__init__.py +0 -0
  330. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/agui.py +0 -0
  331. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/router.py +0 -0
  332. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/utils.py +0 -0
  333. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/base.py +0 -0
  334. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/__init__.py +0 -0
  335. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/router.py +0 -0
  336. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/security.py +0 -0
  337. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/slack.py +0 -0
  338. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/__init__.py +0 -0
  339. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/router.py +0 -0
  340. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/security.py +0 -0
  341. {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
  342. {agno-2.4.4 → agno-2.4.5}/agno/os/managers.py +0 -0
  343. {agno-2.4.4 → agno-2.4.5}/agno/os/mcp.py +0 -0
  344. {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/__init__.py +0 -0
  345. {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/jwt.py +0 -0
  346. {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/trailing_slash.py +0 -0
  347. {agno-2.4.4 → agno-2.4.5}/agno/os/router.py +0 -0
  348. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/__init__.py +0 -0
  349. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/__init__.py +0 -0
  350. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/router.py +0 -0
  351. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/schema.py +0 -0
  352. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/components/__init__.py +0 -0
  353. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/components/components.py +0 -0
  354. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/database.py +0 -0
  355. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/__init__.py +0 -0
  356. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/evals.py +0 -0
  357. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/schemas.py +0 -0
  358. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/utils.py +0 -0
  359. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/health.py +0 -0
  360. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/home.py +0 -0
  361. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/__init__.py +0 -0
  362. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/knowledge.py +0 -0
  363. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/schemas.py +0 -0
  364. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/__init__.py +0 -0
  365. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/memory.py +0 -0
  366. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/schemas.py +0 -0
  367. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/__init__.py +0 -0
  368. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/metrics.py +0 -0
  369. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/schemas.py +0 -0
  370. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/registry/__init__.py +0 -0
  371. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/registry/registry.py +0 -0
  372. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/session/__init__.py +0 -0
  373. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/session/session.py +0 -0
  374. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/__init__.py +0 -0
  375. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/router.py +0 -0
  376. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/schema.py +0 -0
  377. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/__init__.py +0 -0
  378. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/schemas.py +0 -0
  379. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/traces.py +0 -0
  380. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/__init__.py +0 -0
  381. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/router.py +0 -0
  382. {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/schema.py +0 -0
  383. {agno-2.4.4 → agno-2.4.5}/agno/os/schema.py +0 -0
  384. {agno-2.4.4 → agno-2.4.5}/agno/os/scopes.py +0 -0
  385. {agno-2.4.4 → agno-2.4.5}/agno/os/settings.py +0 -0
  386. {agno-2.4.4 → agno-2.4.5}/agno/os/utils.py +0 -0
  387. {agno-2.4.4 → agno-2.4.5}/agno/py.typed +0 -0
  388. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/__init__.py +0 -0
  389. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/anthropic.py +0 -0
  390. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/azure_ai_foundry.py +0 -0
  391. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/deepseek.py +0 -0
  392. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/default.py +0 -0
  393. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/gemini.py +0 -0
  394. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/groq.py +0 -0
  395. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/helpers.py +0 -0
  396. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/manager.py +0 -0
  397. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/ollama.py +0 -0
  398. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/openai.py +0 -0
  399. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/step.py +0 -0
  400. {agno-2.4.4 → agno-2.4.5}/agno/reasoning/vertexai.py +0 -0
  401. {agno-2.4.4 → agno-2.4.5}/agno/registry/__init__.py +0 -0
  402. {agno-2.4.4 → agno-2.4.5}/agno/registry/registry.py +0 -0
  403. {agno-2.4.4 → agno-2.4.5}/agno/remote/__init__.py +0 -0
  404. {agno-2.4.4 → agno-2.4.5}/agno/remote/base.py +0 -0
  405. {agno-2.4.4 → agno-2.4.5}/agno/run/__init__.py +0 -0
  406. {agno-2.4.4 → agno-2.4.5}/agno/run/agent.py +0 -0
  407. {agno-2.4.4 → agno-2.4.5}/agno/run/base.py +0 -0
  408. {agno-2.4.4 → agno-2.4.5}/agno/run/cancel.py +0 -0
  409. {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/__init__.py +0 -0
  410. {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/base.py +0 -0
  411. {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/in_memory_cancellation_manager.py +0 -0
  412. {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/redis_cancellation_manager.py +0 -0
  413. {agno-2.4.4 → agno-2.4.5}/agno/run/messages.py +0 -0
  414. {agno-2.4.4 → agno-2.4.5}/agno/run/requirement.py +0 -0
  415. {agno-2.4.4 → agno-2.4.5}/agno/run/team.py +0 -0
  416. {agno-2.4.4 → agno-2.4.5}/agno/run/workflow.py +0 -0
  417. {agno-2.4.4 → agno-2.4.5}/agno/session/__init__.py +0 -0
  418. {agno-2.4.4 → agno-2.4.5}/agno/session/agent.py +0 -0
  419. {agno-2.4.4 → agno-2.4.5}/agno/session/summary.py +0 -0
  420. {agno-2.4.4 → agno-2.4.5}/agno/session/team.py +0 -0
  421. {agno-2.4.4 → agno-2.4.5}/agno/session/workflow.py +0 -0
  422. {agno-2.4.4 → agno-2.4.5}/agno/skills/__init__.py +0 -0
  423. {agno-2.4.4 → agno-2.4.5}/agno/skills/agent_skills.py +0 -0
  424. {agno-2.4.4 → agno-2.4.5}/agno/skills/errors.py +0 -0
  425. {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/__init__.py +0 -0
  426. {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/base.py +0 -0
  427. {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/local.py +0 -0
  428. {agno-2.4.4 → agno-2.4.5}/agno/skills/skill.py +0 -0
  429. {agno-2.4.4 → agno-2.4.5}/agno/skills/utils.py +0 -0
  430. {agno-2.4.4 → agno-2.4.5}/agno/skills/validator.py +0 -0
  431. {agno-2.4.4 → agno-2.4.5}/agno/table.py +0 -0
  432. {agno-2.4.4 → agno-2.4.5}/agno/team/__init__.py +0 -0
  433. {agno-2.4.4 → agno-2.4.5}/agno/team/remote.py +0 -0
  434. {agno-2.4.4 → agno-2.4.5}/agno/tools/__init__.py +0 -0
  435. {agno-2.4.4 → agno-2.4.5}/agno/tools/agentql.py +0 -0
  436. {agno-2.4.4 → agno-2.4.5}/agno/tools/airflow.py +0 -0
  437. {agno-2.4.4 → agno-2.4.5}/agno/tools/api.py +0 -0
  438. {agno-2.4.4 → agno-2.4.5}/agno/tools/apify.py +0 -0
  439. {agno-2.4.4 → agno-2.4.5}/agno/tools/arxiv.py +0 -0
  440. {agno-2.4.4 → agno-2.4.5}/agno/tools/aws_lambda.py +0 -0
  441. {agno-2.4.4 → agno-2.4.5}/agno/tools/aws_ses.py +0 -0
  442. {agno-2.4.4 → agno-2.4.5}/agno/tools/baidusearch.py +0 -0
  443. {agno-2.4.4 → agno-2.4.5}/agno/tools/bitbucket.py +0 -0
  444. {agno-2.4.4 → agno-2.4.5}/agno/tools/brandfetch.py +0 -0
  445. {agno-2.4.4 → agno-2.4.5}/agno/tools/bravesearch.py +0 -0
  446. {agno-2.4.4 → agno-2.4.5}/agno/tools/brightdata.py +0 -0
  447. {agno-2.4.4 → agno-2.4.5}/agno/tools/browserbase.py +0 -0
  448. {agno-2.4.4 → agno-2.4.5}/agno/tools/calcom.py +0 -0
  449. {agno-2.4.4 → agno-2.4.5}/agno/tools/calculator.py +0 -0
  450. {agno-2.4.4 → agno-2.4.5}/agno/tools/cartesia.py +0 -0
  451. {agno-2.4.4 → agno-2.4.5}/agno/tools/clickup.py +0 -0
  452. {agno-2.4.4 → agno-2.4.5}/agno/tools/confluence.py +0 -0
  453. {agno-2.4.4 → agno-2.4.5}/agno/tools/crawl4ai.py +0 -0
  454. {agno-2.4.4 → agno-2.4.5}/agno/tools/csv_toolkit.py +0 -0
  455. {agno-2.4.4 → agno-2.4.5}/agno/tools/dalle.py +0 -0
  456. {agno-2.4.4 → agno-2.4.5}/agno/tools/daytona.py +0 -0
  457. {agno-2.4.4 → agno-2.4.5}/agno/tools/decorator.py +0 -0
  458. {agno-2.4.4 → agno-2.4.5}/agno/tools/desi_vocal.py +0 -0
  459. {agno-2.4.4 → agno-2.4.5}/agno/tools/discord.py +0 -0
  460. {agno-2.4.4 → agno-2.4.5}/agno/tools/docker.py +0 -0
  461. {agno-2.4.4 → agno-2.4.5}/agno/tools/duckdb.py +0 -0
  462. {agno-2.4.4 → agno-2.4.5}/agno/tools/duckduckgo.py +0 -0
  463. {agno-2.4.4 → agno-2.4.5}/agno/tools/e2b.py +0 -0
  464. {agno-2.4.4 → agno-2.4.5}/agno/tools/eleven_labs.py +0 -0
  465. {agno-2.4.4 → agno-2.4.5}/agno/tools/email.py +0 -0
  466. {agno-2.4.4 → agno-2.4.5}/agno/tools/evm.py +0 -0
  467. {agno-2.4.4 → agno-2.4.5}/agno/tools/exa.py +0 -0
  468. {agno-2.4.4 → agno-2.4.5}/agno/tools/fal.py +0 -0
  469. {agno-2.4.4 → agno-2.4.5}/agno/tools/file.py +0 -0
  470. {agno-2.4.4 → agno-2.4.5}/agno/tools/file_generation.py +0 -0
  471. {agno-2.4.4 → agno-2.4.5}/agno/tools/financial_datasets.py +0 -0
  472. {agno-2.4.4 → agno-2.4.5}/agno/tools/firecrawl.py +0 -0
  473. {agno-2.4.4 → agno-2.4.5}/agno/tools/function.py +0 -0
  474. {agno-2.4.4 → agno-2.4.5}/agno/tools/giphy.py +0 -0
  475. {agno-2.4.4 → agno-2.4.5}/agno/tools/github.py +0 -0
  476. {agno-2.4.4 → agno-2.4.5}/agno/tools/gmail.py +0 -0
  477. {agno-2.4.4 → agno-2.4.5}/agno/tools/google_bigquery.py +0 -0
  478. {agno-2.4.4 → agno-2.4.5}/agno/tools/google_drive.py +0 -0
  479. {agno-2.4.4 → agno-2.4.5}/agno/tools/google_maps.py +0 -0
  480. {agno-2.4.4 → agno-2.4.5}/agno/tools/googlecalendar.py +0 -0
  481. {agno-2.4.4 → agno-2.4.5}/agno/tools/googlesheets.py +0 -0
  482. {agno-2.4.4 → agno-2.4.5}/agno/tools/hackernews.py +0 -0
  483. {agno-2.4.4 → agno-2.4.5}/agno/tools/jina.py +0 -0
  484. {agno-2.4.4 → agno-2.4.5}/agno/tools/jira.py +0 -0
  485. {agno-2.4.4 → agno-2.4.5}/agno/tools/knowledge.py +0 -0
  486. {agno-2.4.4 → agno-2.4.5}/agno/tools/linear.py +0 -0
  487. {agno-2.4.4 → agno-2.4.5}/agno/tools/linkup.py +0 -0
  488. {agno-2.4.4 → agno-2.4.5}/agno/tools/local_file_system.py +0 -0
  489. {agno-2.4.4 → agno-2.4.5}/agno/tools/lumalab.py +0 -0
  490. {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/__init__.py +0 -0
  491. {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/mcp.py +0 -0
  492. {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/multi_mcp.py +0 -0
  493. {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/params.py +0 -0
  494. {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp_toolbox.py +0 -0
  495. {agno-2.4.4 → agno-2.4.5}/agno/tools/mem0.py +0 -0
  496. {agno-2.4.4 → agno-2.4.5}/agno/tools/memory.py +0 -0
  497. {agno-2.4.4 → agno-2.4.5}/agno/tools/mlx_transcribe.py +0 -0
  498. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/__init__.py +0 -0
  499. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/azure_openai.py +0 -0
  500. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/gemini.py +0 -0
  501. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/groq.py +0 -0
  502. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/morph.py +0 -0
  503. {agno-2.4.4 → agno-2.4.5}/agno/tools/models/nebius.py +0 -0
  504. {agno-2.4.4 → agno-2.4.5}/agno/tools/models_labs.py +0 -0
  505. {agno-2.4.4 → agno-2.4.5}/agno/tools/moviepy_video.py +0 -0
  506. {agno-2.4.4 → agno-2.4.5}/agno/tools/nano_banana.py +0 -0
  507. {agno-2.4.4 → agno-2.4.5}/agno/tools/neo4j.py +0 -0
  508. {agno-2.4.4 → agno-2.4.5}/agno/tools/newspaper.py +0 -0
  509. {agno-2.4.4 → agno-2.4.5}/agno/tools/newspaper4k.py +0 -0
  510. {agno-2.4.4 → agno-2.4.5}/agno/tools/notion.py +0 -0
  511. {agno-2.4.4 → agno-2.4.5}/agno/tools/openai.py +0 -0
  512. {agno-2.4.4 → agno-2.4.5}/agno/tools/openbb.py +0 -0
  513. {agno-2.4.4 → agno-2.4.5}/agno/tools/opencv.py +0 -0
  514. {agno-2.4.4 → agno-2.4.5}/agno/tools/openweather.py +0 -0
  515. {agno-2.4.4 → agno-2.4.5}/agno/tools/oxylabs.py +0 -0
  516. {agno-2.4.4 → agno-2.4.5}/agno/tools/pandas.py +0 -0
  517. {agno-2.4.4 → agno-2.4.5}/agno/tools/parallel.py +0 -0
  518. {agno-2.4.4 → agno-2.4.5}/agno/tools/postgres.py +0 -0
  519. {agno-2.4.4 → agno-2.4.5}/agno/tools/pubmed.py +0 -0
  520. {agno-2.4.4 → agno-2.4.5}/agno/tools/python.py +0 -0
  521. {agno-2.4.4 → agno-2.4.5}/agno/tools/reasoning.py +0 -0
  522. {agno-2.4.4 → agno-2.4.5}/agno/tools/reddit.py +0 -0
  523. {agno-2.4.4 → agno-2.4.5}/agno/tools/redshift.py +0 -0
  524. {agno-2.4.4 → agno-2.4.5}/agno/tools/replicate.py +0 -0
  525. {agno-2.4.4 → agno-2.4.5}/agno/tools/resend.py +0 -0
  526. {agno-2.4.4 → agno-2.4.5}/agno/tools/scrapegraph.py +0 -0
  527. {agno-2.4.4 → agno-2.4.5}/agno/tools/searxng.py +0 -0
  528. {agno-2.4.4 → agno-2.4.5}/agno/tools/serpapi.py +0 -0
  529. {agno-2.4.4 → agno-2.4.5}/agno/tools/serper.py +0 -0
  530. {agno-2.4.4 → agno-2.4.5}/agno/tools/shell.py +0 -0
  531. {agno-2.4.4 → agno-2.4.5}/agno/tools/shopify.py +0 -0
  532. {agno-2.4.4 → agno-2.4.5}/agno/tools/slack.py +0 -0
  533. {agno-2.4.4 → agno-2.4.5}/agno/tools/sleep.py +0 -0
  534. {agno-2.4.4 → agno-2.4.5}/agno/tools/spider.py +0 -0
  535. {agno-2.4.4 → agno-2.4.5}/agno/tools/spotify.py +0 -0
  536. {agno-2.4.4 → agno-2.4.5}/agno/tools/sql.py +0 -0
  537. {agno-2.4.4 → agno-2.4.5}/agno/tools/streamlit/__init__.py +0 -0
  538. {agno-2.4.4 → agno-2.4.5}/agno/tools/streamlit/components.py +0 -0
  539. {agno-2.4.4 → agno-2.4.5}/agno/tools/tavily.py +0 -0
  540. {agno-2.4.4 → agno-2.4.5}/agno/tools/telegram.py +0 -0
  541. {agno-2.4.4 → agno-2.4.5}/agno/tools/todoist.py +0 -0
  542. {agno-2.4.4 → agno-2.4.5}/agno/tools/tool_registry.py +0 -0
  543. {agno-2.4.4 → agno-2.4.5}/agno/tools/toolkit.py +0 -0
  544. {agno-2.4.4 → agno-2.4.5}/agno/tools/trafilatura.py +0 -0
  545. {agno-2.4.4 → agno-2.4.5}/agno/tools/trello.py +0 -0
  546. {agno-2.4.4 → agno-2.4.5}/agno/tools/twilio.py +0 -0
  547. {agno-2.4.4 → agno-2.4.5}/agno/tools/unsplash.py +0 -0
  548. {agno-2.4.4 → agno-2.4.5}/agno/tools/user_control_flow.py +0 -0
  549. {agno-2.4.4 → agno-2.4.5}/agno/tools/valyu.py +0 -0
  550. {agno-2.4.4 → agno-2.4.5}/agno/tools/visualization.py +0 -0
  551. {agno-2.4.4 → agno-2.4.5}/agno/tools/webbrowser.py +0 -0
  552. {agno-2.4.4 → agno-2.4.5}/agno/tools/webex.py +0 -0
  553. {agno-2.4.4 → agno-2.4.5}/agno/tools/websearch.py +0 -0
  554. {agno-2.4.4 → agno-2.4.5}/agno/tools/website.py +0 -0
  555. {agno-2.4.4 → agno-2.4.5}/agno/tools/webtools.py +0 -0
  556. {agno-2.4.4 → agno-2.4.5}/agno/tools/whatsapp.py +0 -0
  557. {agno-2.4.4 → agno-2.4.5}/agno/tools/wikipedia.py +0 -0
  558. {agno-2.4.4 → agno-2.4.5}/agno/tools/workflow.py +0 -0
  559. {agno-2.4.4 → agno-2.4.5}/agno/tools/x.py +0 -0
  560. {agno-2.4.4 → agno-2.4.5}/agno/tools/yfinance.py +0 -0
  561. {agno-2.4.4 → agno-2.4.5}/agno/tools/youtube.py +0 -0
  562. {agno-2.4.4 → agno-2.4.5}/agno/tools/zendesk.py +0 -0
  563. {agno-2.4.4 → agno-2.4.5}/agno/tools/zep.py +0 -0
  564. {agno-2.4.4 → agno-2.4.5}/agno/tools/zoom.py +0 -0
  565. {agno-2.4.4 → agno-2.4.5}/agno/tracing/__init__.py +0 -0
  566. {agno-2.4.4 → agno-2.4.5}/agno/tracing/exporter.py +0 -0
  567. {agno-2.4.4 → agno-2.4.5}/agno/tracing/schemas.py +0 -0
  568. {agno-2.4.4 → agno-2.4.5}/agno/tracing/setup.py +0 -0
  569. {agno-2.4.4 → agno-2.4.5}/agno/utils/__init__.py +0 -0
  570. {agno-2.4.4 → agno-2.4.5}/agno/utils/agent.py +0 -0
  571. {agno-2.4.4 → agno-2.4.5}/agno/utils/audio.py +0 -0
  572. {agno-2.4.4 → agno-2.4.5}/agno/utils/certs.py +0 -0
  573. {agno-2.4.4 → agno-2.4.5}/agno/utils/code_execution.py +0 -0
  574. {agno-2.4.4 → agno-2.4.5}/agno/utils/common.py +0 -0
  575. {agno-2.4.4 → agno-2.4.5}/agno/utils/cryptography.py +0 -0
  576. {agno-2.4.4 → agno-2.4.5}/agno/utils/dttm.py +0 -0
  577. {agno-2.4.4 → agno-2.4.5}/agno/utils/enum.py +0 -0
  578. {agno-2.4.4 → agno-2.4.5}/agno/utils/env.py +0 -0
  579. {agno-2.4.4 → agno-2.4.5}/agno/utils/events.py +0 -0
  580. {agno-2.4.4 → agno-2.4.5}/agno/utils/format_str.py +0 -0
  581. {agno-2.4.4 → agno-2.4.5}/agno/utils/functions.py +0 -0
  582. {agno-2.4.4 → agno-2.4.5}/agno/utils/gemini.py +0 -0
  583. {agno-2.4.4 → agno-2.4.5}/agno/utils/hooks.py +0 -0
  584. {agno-2.4.4 → agno-2.4.5}/agno/utils/http.py +0 -0
  585. {agno-2.4.4 → agno-2.4.5}/agno/utils/json_schema.py +0 -0
  586. {agno-2.4.4 → agno-2.4.5}/agno/utils/knowledge.py +0 -0
  587. {agno-2.4.4 → agno-2.4.5}/agno/utils/location.py +0 -0
  588. {agno-2.4.4 → agno-2.4.5}/agno/utils/log.py +0 -0
  589. {agno-2.4.4 → agno-2.4.5}/agno/utils/mcp.py +0 -0
  590. {agno-2.4.4 → agno-2.4.5}/agno/utils/media.py +0 -0
  591. {agno-2.4.4 → agno-2.4.5}/agno/utils/merge_dict.py +0 -0
  592. {agno-2.4.4 → agno-2.4.5}/agno/utils/message.py +0 -0
  593. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/__init__.py +0 -0
  594. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/ai_foundry.py +0 -0
  595. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/claude.py +0 -0
  596. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/cohere.py +0 -0
  597. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/llama.py +0 -0
  598. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/mistral.py +0 -0
  599. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/openai_responses.py +0 -0
  600. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/schema_utils.py +0 -0
  601. {agno-2.4.4 → agno-2.4.5}/agno/utils/models/watsonx.py +0 -0
  602. {agno-2.4.4 → agno-2.4.5}/agno/utils/openai.py +0 -0
  603. {agno-2.4.4 → agno-2.4.5}/agno/utils/os.py +0 -0
  604. {agno-2.4.4 → agno-2.4.5}/agno/utils/pickle.py +0 -0
  605. {agno-2.4.4 → agno-2.4.5}/agno/utils/pprint.py +0 -0
  606. {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/__init__.py +0 -0
  607. {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/agent.py +0 -0
  608. {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/team.py +0 -0
  609. {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/workflow.py +0 -0
  610. {agno-2.4.4 → agno-2.4.5}/agno/utils/prompts.py +0 -0
  611. {agno-2.4.4 → agno-2.4.5}/agno/utils/reasoning.py +0 -0
  612. {agno-2.4.4 → agno-2.4.5}/agno/utils/remote.py +0 -0
  613. {agno-2.4.4 → agno-2.4.5}/agno/utils/response.py +0 -0
  614. {agno-2.4.4 → agno-2.4.5}/agno/utils/response_iterator.py +0 -0
  615. {agno-2.4.4 → agno-2.4.5}/agno/utils/safe_formatter.py +0 -0
  616. {agno-2.4.4 → agno-2.4.5}/agno/utils/serialize.py +0 -0
  617. {agno-2.4.4 → agno-2.4.5}/agno/utils/shell.py +0 -0
  618. {agno-2.4.4 → agno-2.4.5}/agno/utils/streamlit.py +0 -0
  619. {agno-2.4.4 → agno-2.4.5}/agno/utils/string.py +0 -0
  620. {agno-2.4.4 → agno-2.4.5}/agno/utils/team.py +0 -0
  621. {agno-2.4.4 → agno-2.4.5}/agno/utils/timer.py +0 -0
  622. {agno-2.4.4 → agno-2.4.5}/agno/utils/tokens.py +0 -0
  623. {agno-2.4.4 → agno-2.4.5}/agno/utils/tools.py +0 -0
  624. {agno-2.4.4 → agno-2.4.5}/agno/utils/web.py +0 -0
  625. {agno-2.4.4 → agno-2.4.5}/agno/utils/whatsapp.py +0 -0
  626. {agno-2.4.4 → agno-2.4.5}/agno/utils/yaml_io.py +0 -0
  627. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/__init__.py +0 -0
  628. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/base.py +0 -0
  629. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/__init__.py +0 -0
  630. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/cassandra.py +0 -0
  631. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  632. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/index.py +0 -0
  633. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/chroma/__init__.py +0 -0
  634. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/chroma/chromadb.py +0 -0
  635. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/__init__.py +0 -0
  636. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  637. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/index.py +0 -0
  638. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/couchbase/__init__.py +0 -0
  639. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/couchbase/couchbase.py +0 -0
  640. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/distance.py +0 -0
  641. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lancedb/__init__.py +0 -0
  642. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lancedb/lance_db.py +0 -0
  643. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/langchaindb/__init__.py +0 -0
  644. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/langchaindb/langchaindb.py +0 -0
  645. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lightrag/__init__.py +0 -0
  646. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lightrag/lightrag.py +0 -0
  647. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/llamaindex/__init__.py +0 -0
  648. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
  649. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/milvus/__init__.py +0 -0
  650. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/milvus/milvus.py +0 -0
  651. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/mongodb/__init__.py +0 -0
  652. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/mongodb/mongodb.py +0 -0
  653. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/__init__.py +0 -0
  654. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/index.py +0 -0
  655. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/pgvector.py +0 -0
  656. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pineconedb/__init__.py +0 -0
  657. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  658. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/qdrant/__init__.py +0 -0
  659. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/qdrant/qdrant.py +0 -0
  660. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/redis/__init__.py +0 -0
  661. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/redis/redisdb.py +0 -0
  662. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/search.py +0 -0
  663. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/__init__.py +0 -0
  664. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/index.py +0 -0
  665. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/singlestore.py +0 -0
  666. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/surrealdb/__init__.py +0 -0
  667. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  668. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/upstashdb/__init__.py +0 -0
  669. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  670. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/__init__.py +0 -0
  671. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/index.py +0 -0
  672. {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/weaviate.py +0 -0
  673. {agno-2.4.4 → agno-2.4.5}/agno/workflow/__init__.py +0 -0
  674. {agno-2.4.4 → agno-2.4.5}/agno/workflow/agent.py +0 -0
  675. {agno-2.4.4 → agno-2.4.5}/agno/workflow/condition.py +0 -0
  676. {agno-2.4.4 → agno-2.4.5}/agno/workflow/loop.py +0 -0
  677. {agno-2.4.4 → agno-2.4.5}/agno/workflow/parallel.py +0 -0
  678. {agno-2.4.4 → agno-2.4.5}/agno/workflow/remote.py +0 -0
  679. {agno-2.4.4 → agno-2.4.5}/agno/workflow/router.py +0 -0
  680. {agno-2.4.4 → agno-2.4.5}/agno/workflow/step.py +0 -0
  681. {agno-2.4.4 → agno-2.4.5}/agno/workflow/steps.py +0 -0
  682. {agno-2.4.4 → agno-2.4.5}/agno/workflow/types.py +0 -0
  683. {agno-2.4.4 → agno-2.4.5}/agno/workflow/workflow.py +0 -0
  684. {agno-2.4.4 → agno-2.4.5}/agno.egg-info/dependency_links.txt +0 -0
  685. {agno-2.4.4 → agno-2.4.5}/agno.egg-info/top_level.txt +0 -0
  686. {agno-2.4.4 → agno-2.4.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.4.4
3
+ Version: 2.4.5
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
@@ -132,6 +132,8 @@ Provides-Extra: evm
132
132
  Requires-Dist: web3; extra == "evm"
133
133
  Provides-Extra: exa
134
134
  Requires-Dist: exa_py; extra == "exa"
135
+ Provides-Extra: seltz
136
+ Requires-Dist: seltz; extra == "seltz"
135
137
  Provides-Extra: fal
136
138
  Requires-Dist: fal_client; extra == "fal"
137
139
  Provides-Extra: firecrawl
@@ -308,6 +310,7 @@ Provides-Extra: tools
308
310
  Requires-Dist: agno[apify]; extra == "tools"
309
311
  Requires-Dist: agno[arxiv]; extra == "tools"
310
312
  Requires-Dist: agno[exa]; extra == "tools"
313
+ Requires-Dist: agno[seltz]; extra == "tools"
311
314
  Requires-Dist: agno[cartesia]; extra == "tools"
312
315
  Requires-Dist: agno[ddg]; extra == "tools"
313
316
  Requires-Dist: agno[duckdb]; extra == "tools"
@@ -320,6 +320,8 @@ class Agent:
320
320
  # Add a tool that allows the Model to search the knowledge base (aka Agentic RAG)
321
321
  # Added only if knowledge is provided.
322
322
  search_knowledge: bool = True
323
+ # If True, add search_knowledge instructions to the system prompt
324
+ add_search_knowledge_instructions: bool = True
323
325
  # Add a tool that allows the Agent to update Knowledge.
324
326
  update_knowledge: bool = False
325
327
  # Add a tool that allows the Model to get the tool call history.
@@ -524,6 +526,7 @@ class Agent:
524
526
  reasoning_max_steps: int = 10,
525
527
  read_chat_history: bool = False,
526
528
  search_knowledge: bool = True,
529
+ add_search_knowledge_instructions: bool = True,
527
530
  update_knowledge: bool = False,
528
531
  read_tool_call_history: bool = False,
529
532
  send_media_to_model: bool = True,
@@ -661,6 +664,7 @@ class Agent:
661
664
 
662
665
  self.read_chat_history = read_chat_history
663
666
  self.search_knowledge = search_knowledge
667
+ self.add_search_knowledge_instructions = add_search_knowledge_instructions
664
668
  self.update_knowledge = update_knowledge
665
669
  self.read_tool_call_history = read_tool_call_history
666
670
  self.send_media_to_model = send_media_to_model
@@ -7431,6 +7435,10 @@ class Agent:
7431
7435
  config["enable_agentic_knowledge_filters"] = self.enable_agentic_knowledge_filters
7432
7436
  if self.add_knowledge_to_context:
7433
7437
  config["add_knowledge_to_context"] = self.add_knowledge_to_context
7438
+ if not self.search_knowledge:
7439
+ config["search_knowledge"] = self.search_knowledge
7440
+ if self.add_search_knowledge_instructions:
7441
+ config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
7434
7442
  # Skip knowledge_retriever as it's a callable
7435
7443
  if self.references_format != "json":
7436
7444
  config["references_format"] = self.references_format
@@ -7481,8 +7489,6 @@ class Agent:
7481
7489
  # --- Default tools settings ---
7482
7490
  if self.read_chat_history:
7483
7491
  config["read_chat_history"] = self.read_chat_history
7484
- if not self.search_knowledge:
7485
- config["search_knowledge"] = self.search_knowledge
7486
7492
  if self.update_knowledge:
7487
7493
  config["update_knowledge"] = self.update_knowledge
7488
7494
  if self.read_tool_call_history:
@@ -7806,6 +7812,7 @@ class Agent:
7806
7812
  # --- Default tools settings ---
7807
7813
  read_chat_history=config.get("read_chat_history", False),
7808
7814
  search_knowledge=config.get("search_knowledge", True),
7815
+ add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
7809
7816
  update_knowledge=config.get("update_knowledge", False),
7810
7817
  read_tool_call_history=config.get("read_tool_call_history", False),
7811
7818
  send_media_to_model=config.get("send_media_to_model", True),
@@ -8859,16 +8866,6 @@ class Agent:
8859
8866
  if self.name is not None and self.add_name_to_context:
8860
8867
  additional_information.append(f"Your name is: {self.name}.")
8861
8868
 
8862
- # 3.2.5 Add knowledge context using protocol's build_context
8863
- if self.knowledge is not None:
8864
- build_context_fn = getattr(self.knowledge, "build_context", None)
8865
- if callable(build_context_fn):
8866
- knowledge_context = build_context_fn(
8867
- enable_agentic_filters=self.enable_agentic_knowledge_filters,
8868
- )
8869
- if knowledge_context:
8870
- additional_information.append(knowledge_context)
8871
-
8872
8869
  # 3.3 Build the default system message for the Agent.
8873
8870
  system_message_content: str = ""
8874
8871
  # 3.3.1 First add the Agent description if provided
@@ -9045,12 +9042,22 @@ class Agent:
9045
9042
  if learning_context:
9046
9043
  system_message_content += learning_context + "\n"
9047
9044
 
9048
- # 3.3.13 Add the system message from the Model
9045
+ # 3.3.13 then add search_knowledge instructions to the system prompt
9046
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
9047
+ build_context_fn = getattr(self.knowledge, "build_context", None)
9048
+ if callable(build_context_fn):
9049
+ knowledge_context = build_context_fn(
9050
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9051
+ )
9052
+ if knowledge_context is not None:
9053
+ system_message_content += knowledge_context + "\n"
9054
+
9055
+ # 3.3.14 Add the system message from the Model
9049
9056
  system_message_from_model = self.model.get_system_message_for_model(tools)
9050
9057
  if system_message_from_model is not None:
9051
9058
  system_message_content += system_message_from_model
9052
9059
 
9053
- # 3.3.14 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
9060
+ # 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
9054
9061
  # or if use_json_mode is True
9055
9062
  if (
9056
9063
  output_schema is not None
@@ -9062,11 +9069,11 @@ class Agent:
9062
9069
  ):
9063
9070
  system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
9064
9071
 
9065
- # 3.3.15 Add the response model format prompt if output_schema is provided (Pydantic only)
9072
+ # 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
9066
9073
  if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
9067
9074
  system_message_content += f"{get_response_model_format_prompt(output_schema)}"
9068
9075
 
9069
- # 3.3.16 Add the session state to the system message
9076
+ # 3.3.17 Add the session state to the system message
9070
9077
  if add_session_state_to_context and session_state is not None:
9071
9078
  system_message_content += f"\n<session_state>\n{session_state}\n</session_state>\n\n"
9072
9079
 
@@ -9196,24 +9203,6 @@ class Agent:
9196
9203
  if self.name is not None and self.add_name_to_context:
9197
9204
  additional_information.append(f"Your name is: {self.name}.")
9198
9205
 
9199
- # 3.2.5 Add knowledge context using protocol's build_context (async)
9200
- if self.knowledge is not None:
9201
- # Prefer async version if available for async databases
9202
- abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
9203
- build_context_fn = getattr(self.knowledge, "build_context", None)
9204
- if callable(abuild_context_fn):
9205
- knowledge_context = await abuild_context_fn(
9206
- enable_agentic_filters=self.enable_agentic_knowledge_filters,
9207
- )
9208
- if knowledge_context:
9209
- additional_information.append(knowledge_context)
9210
- elif callable(build_context_fn):
9211
- knowledge_context = build_context_fn(
9212
- enable_agentic_filters=self.enable_agentic_knowledge_filters,
9213
- )
9214
- if knowledge_context:
9215
- additional_information.append(knowledge_context)
9216
-
9217
9206
  # 3.3 Build the default system message for the Agent.
9218
9207
  system_message_content: str = ""
9219
9208
  # 3.3.1 First add the Agent description if provided
@@ -9393,12 +9382,30 @@ class Agent:
9393
9382
  if learning_context:
9394
9383
  system_message_content += learning_context + "\n"
9395
9384
 
9396
- # 3.3.13 Add the system message from the Model
9385
+ # 3.3.13 then add search_knowledge instructions to the system prompt
9386
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
9387
+ # Prefer async version if available for async databases
9388
+ abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
9389
+ build_context_fn = getattr(self.knowledge, "build_context", None)
9390
+ if callable(abuild_context_fn):
9391
+ knowledge_context = await abuild_context_fn(
9392
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9393
+ )
9394
+ if knowledge_context is not None:
9395
+ system_message_content += knowledge_context + "\n"
9396
+ elif callable(build_context_fn):
9397
+ knowledge_context = build_context_fn(
9398
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9399
+ )
9400
+ if knowledge_context is not None:
9401
+ system_message_content += knowledge_context + "\n"
9402
+
9403
+ # 3.3.14 Add the system message from the Model
9397
9404
  system_message_from_model = self.model.get_system_message_for_model(tools)
9398
9405
  if system_message_from_model is not None:
9399
9406
  system_message_content += system_message_from_model
9400
9407
 
9401
- # 3.3.14 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
9408
+ # 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
9402
9409
  # or if use_json_mode is True
9403
9410
  if (
9404
9411
  output_schema is not None
@@ -9410,11 +9417,11 @@ class Agent:
9410
9417
  ):
9411
9418
  system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
9412
9419
 
9413
- # 3.3.15 Add the response model format prompt if output_schema is provided (Pydantic only)
9420
+ # 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
9414
9421
  if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
9415
9422
  system_message_content += f"{get_response_model_format_prompt(output_schema)}"
9416
9423
 
9417
- # 3.3.16 Add the session state to the system message
9424
+ # 3.3.17 Add the session state to the system message
9418
9425
  if add_session_state_to_context and session_state is not None:
9419
9426
  system_message_content += self._get_formatted_session_state_for_system_message(session_state)
9420
9427
 
@@ -4451,12 +4451,10 @@ class Knowledge:
4451
4451
  # ========================================================================
4452
4452
 
4453
4453
  # Shared context strings
4454
- _KNOWLEDGE_BASE_SEARCH_INSTRUCTION = (
4455
- "You have access to a knowledge base.\n"
4456
- "IMPORTANT: For any user question that could be answered from the knowledge base, you MUST call the "
4457
- "search_knowledge_base tool before responding.\n"
4458
- "If the user question is ambiguous (e.g., 'the candidate') do NOT ask clarifying questions first—search the "
4459
- "knowledge base to identify the relevant documents.\n"
4454
+ _SEARCH_KNOWLEDGE_INSTRUCTIONS = (
4455
+ "You have a knowledge base you can search using the search_knowledge_base tool. "
4456
+ "Search before answering questions—don't assume you know the answer. "
4457
+ "For ambiguous questions, search first rather than asking for clarification."
4460
4458
  )
4461
4459
 
4462
4460
  _AGENTIC_FILTER_INSTRUCTION_TEMPLATE = """
@@ -4499,7 +4497,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
4499
4497
  Returns:
4500
4498
  Context string to add to system prompt.
4501
4499
  """
4502
- context_parts: List[str] = [self._KNOWLEDGE_BASE_SEARCH_INSTRUCTION]
4500
+ context_parts: List[str] = [self._SEARCH_KNOWLEDGE_INSTRUCTIONS]
4503
4501
 
4504
4502
  # Add filter instructions if agentic filters are enabled
4505
4503
  if enable_agentic_filters:
@@ -4507,7 +4505,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
4507
4505
  if valid_filters:
4508
4506
  context_parts.append(self._get_agentic_filter_instructions(valid_filters))
4509
4507
 
4510
- return "\n".join(context_parts)
4508
+ return "<knowledge_base>\n" + "\n".join(context_parts) + "\n</knowledge_base>"
4511
4509
 
4512
4510
  async def abuild_context(
4513
4511
  self,
@@ -4526,7 +4524,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
4526
4524
  Returns:
4527
4525
  Context string to add to system prompt.
4528
4526
  """
4529
- context_parts: List[str] = [self._KNOWLEDGE_BASE_SEARCH_INSTRUCTION]
4527
+ context_parts: List[str] = [self._SEARCH_KNOWLEDGE_INSTRUCTIONS]
4530
4528
 
4531
4529
  # Add filter instructions if agentic filters are enabled
4532
4530
  if enable_agentic_filters:
@@ -4534,7 +4532,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
4534
4532
  if valid_filters:
4535
4533
  context_parts.append(self._get_agentic_filter_instructions(valid_filters))
4536
4534
 
4537
- return "\n".join(context_parts)
4535
+ return "<knowledge_base>\n" + "\n".join(context_parts) + "\n</knowledge_base>"
4538
4536
 
4539
4537
  def get_tools(
4540
4538
  self,
@@ -343,6 +343,8 @@ class Team:
343
343
  # Add a tool to search the knowledge base (aka Agentic RAG)
344
344
  # Only added if knowledge is provided.
345
345
  search_knowledge: bool = True
346
+ # If True, add search_knowledge instructions to the system prompt
347
+ add_search_knowledge_instructions: bool = True
346
348
 
347
349
  # If False, media (images, videos, audio, files) is only available to tools and not sent to the LLM
348
350
  send_media_to_model: bool = True
@@ -530,6 +532,7 @@ class Team:
530
532
  share_member_interactions: bool = False,
531
533
  get_member_information_tool: bool = False,
532
534
  search_knowledge: bool = True,
535
+ add_search_knowledge_instructions: bool = True,
533
536
  read_chat_history: bool = False,
534
537
  store_media: bool = True,
535
538
  store_tool_messages: bool = True,
@@ -653,6 +656,7 @@ class Team:
653
656
  self.share_member_interactions = share_member_interactions
654
657
  self.get_member_information_tool = get_member_information_tool
655
658
  self.search_knowledge = search_knowledge
659
+ self.add_search_knowledge_instructions = add_search_knowledge_instructions
656
660
  self.read_chat_history = read_chat_history
657
661
 
658
662
  self.store_media = store_media
@@ -5675,16 +5679,6 @@ class Team:
5675
5679
  if self.name is not None and self.add_name_to_context:
5676
5680
  additional_information.append(f"Your name is: {self.name}.")
5677
5681
 
5678
- # Add knowledge context using protocol's build_context
5679
- if self.knowledge is not None:
5680
- build_context_fn = getattr(self.knowledge, "build_context", None)
5681
- if callable(build_context_fn):
5682
- knowledge_context = build_context_fn(
5683
- enable_agentic_filters=self.enable_agentic_knowledge_filters,
5684
- )
5685
- if knowledge_context:
5686
- additional_information.append(knowledge_context)
5687
-
5688
5682
  # 2 Build the default system message for the Agent.
5689
5683
  system_message_content: str = ""
5690
5684
  if self.members is not None and len(self.members) > 0:
@@ -5788,6 +5782,16 @@ class Team:
5788
5782
  "You should ALWAYS prefer information from this conversation over the past summary.\n\n"
5789
5783
  )
5790
5784
 
5785
+ # Add search_knowledge instructions to the system prompt
5786
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
5787
+ build_context_fn = getattr(self.knowledge, "build_context", None)
5788
+ if callable(build_context_fn):
5789
+ knowledge_context = build_context_fn(
5790
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
5791
+ )
5792
+ if knowledge_context:
5793
+ system_message_content += knowledge_context + "\n"
5794
+
5791
5795
  if self.description is not None:
5792
5796
  system_message_content += f"<description>\n{self.description}\n</description>\n\n"
5793
5797
 
@@ -5971,16 +5975,6 @@ class Team:
5971
5975
  if self.name is not None and self.add_name_to_context:
5972
5976
  additional_information.append(f"Your name is: {self.name}.")
5973
5977
 
5974
- # Add knowledge context using protocol's build_context
5975
- if self.knowledge is not None:
5976
- build_context_fn = getattr(self.knowledge, "build_context", None)
5977
- if callable(build_context_fn):
5978
- knowledge_context = build_context_fn(
5979
- enable_agentic_filters=self.enable_agentic_knowledge_filters,
5980
- )
5981
- if knowledge_context:
5982
- additional_information.append(knowledge_context)
5983
-
5984
5978
  # 2 Build the default system message for the Agent.
5985
5979
  system_message_content: str = ""
5986
5980
  system_message_content += "You are the leader of a team and sub-teams of AI Agents.\n"
@@ -6089,6 +6083,16 @@ class Team:
6089
6083
  "You should ALWAYS prefer information from this conversation over the past summary.\n\n"
6090
6084
  )
6091
6085
 
6086
+ # Add search_knowledge instructions to the system prompt
6087
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
6088
+ build_context_fn = getattr(self.knowledge, "build_context", None)
6089
+ if callable(build_context_fn):
6090
+ knowledge_context = build_context_fn(
6091
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
6092
+ )
6093
+ if knowledge_context:
6094
+ system_message_content += knowledge_context + "\n"
6095
+
6092
6096
  if self.description is not None:
6093
6097
  system_message_content += f"<description>\n{self.description}\n</description>\n\n"
6094
6098
 
@@ -8359,6 +8363,8 @@ class Team:
8359
8363
  config["add_knowledge_to_context"] = self.add_knowledge_to_context
8360
8364
  if not self.search_knowledge: # default is True
8361
8365
  config["search_knowledge"] = self.search_knowledge
8366
+ if self.add_search_knowledge_instructions:
8367
+ config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
8362
8368
  if self.references_format != "json": # default is "json"
8363
8369
  config["references_format"] = self.references_format
8364
8370
 
@@ -8717,6 +8723,7 @@ class Team:
8717
8723
  add_knowledge_to_context=config.get("add_knowledge_to_context", False),
8718
8724
  update_knowledge=config.get("update_knowledge", False),
8719
8725
  search_knowledge=config.get("search_knowledge", True),
8726
+ add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
8720
8727
  references_format=config.get("references_format", "json"),
8721
8728
  # --- Tools ---
8722
8729
  tools=config.get("tools"),
@@ -0,0 +1,134 @@
1
+ import json
2
+ from os import getenv
3
+ from typing import Any, List, Optional
4
+
5
+ from agno.tools import Toolkit
6
+ from agno.utils.log import log_info, logger
7
+
8
+ try:
9
+ from seltz import Seltz
10
+ from seltz.exceptions import (
11
+ SeltzAPIError,
12
+ SeltzAuthenticationError,
13
+ SeltzConfigurationError,
14
+ SeltzConnectionError,
15
+ SeltzError,
16
+ SeltzRateLimitError,
17
+ SeltzTimeoutError,
18
+ )
19
+ except ImportError as exc:
20
+ raise ImportError("`seltz` not installed. Please install using `pip install seltz`") from exc
21
+
22
+
23
+ class SeltzTools(Toolkit):
24
+ """Toolkit for interacting with the Seltz AI-powered search API.
25
+
26
+ Args:
27
+ api_key: Seltz API key. If not provided, uses the `SELTZ_API_KEY` env var.
28
+ endpoint: Optional Seltz gRPC endpoint. If not provided, uses SDK default.
29
+ insecure: Use an insecure gRPC channel. Defaults to False.
30
+ max_documents: Default maximum number of documents to return per search.
31
+ show_results: Log search results for debugging.
32
+ enable_search: Enable search tool functionality. Defaults to True.
33
+ all: Enable all tools. Overrides individual flags when True. Defaults to False.
34
+ """
35
+
36
+ def __init__(
37
+ self,
38
+ api_key: Optional[str] = None,
39
+ endpoint: Optional[str] = None,
40
+ insecure: bool = False,
41
+ max_documents: int = 10,
42
+ show_results: bool = False,
43
+ enable_search: bool = True,
44
+ all: bool = False,
45
+ **kwargs: Any,
46
+ ):
47
+ if max_documents <= 0:
48
+ raise ValueError("max_documents must be greater than 0")
49
+
50
+ self.api_key = api_key or getenv("SELTZ_API_KEY")
51
+ if not self.api_key:
52
+ logger.error("SELTZ_API_KEY not set. Please set the SELTZ_API_KEY environment variable.")
53
+
54
+ self.endpoint = endpoint
55
+ self.insecure = insecure
56
+ self.max_documents = max_documents
57
+ self.show_results = show_results
58
+
59
+ self.client: Optional[Seltz] = None
60
+ if self.api_key:
61
+ client_kwargs: dict[str, Any] = {"api_key": self.api_key}
62
+ if self.endpoint:
63
+ client_kwargs["endpoint"] = self.endpoint
64
+ if self.insecure:
65
+ client_kwargs["insecure"] = self.insecure
66
+ self.client = Seltz(**client_kwargs)
67
+
68
+ tools: List[Any] = []
69
+ if all or enable_search:
70
+ tools.append(self.search_seltz)
71
+
72
+ super().__init__(name="seltz", tools=tools, **kwargs)
73
+
74
+ def _parse_documents(self, documents: Any) -> str:
75
+ """Convert Seltz documents into JSON for the agent."""
76
+ parsed: List[dict[str, Any]] = []
77
+ for doc in documents or []:
78
+ doc_dict: dict[str, Any] = {}
79
+ url = getattr(doc, "url", None)
80
+ content = getattr(doc, "content", None)
81
+
82
+ if url is not None:
83
+ doc_dict["url"] = url
84
+ if content:
85
+ doc_dict["content"] = content
86
+ if doc_dict:
87
+ parsed.append(doc_dict)
88
+ return json.dumps(parsed, indent=4, ensure_ascii=False)
89
+
90
+ def search_seltz(self, query: str, max_documents: Optional[int] = None) -> str:
91
+ """Use this function to search Seltz for a query.
92
+
93
+ Args:
94
+ query: The query to search for.
95
+ max_documents: Maximum number of documents to return. Defaults to toolkit `max_documents`.
96
+
97
+ Returns:
98
+ str: Search results in JSON format.
99
+ """
100
+ if not query:
101
+ return "Error: Please provide a query to search for."
102
+
103
+ if not self.client:
104
+ return "Error: SELTZ_API_KEY not set. Please set the SELTZ_API_KEY environment variable."
105
+
106
+ limit = max_documents if max_documents is not None else self.max_documents
107
+ if limit <= 0:
108
+ return "Error: max_documents must be greater than 0."
109
+
110
+ try:
111
+ if self.show_results:
112
+ log_info(f"Searching Seltz for: {query}")
113
+
114
+ response = self.client.search(query, max_documents=limit)
115
+ result = self._parse_documents(getattr(response, "documents", []))
116
+
117
+ if self.show_results:
118
+ log_info(result)
119
+
120
+ return result
121
+ except (
122
+ SeltzConfigurationError,
123
+ SeltzAuthenticationError,
124
+ SeltzConnectionError,
125
+ SeltzTimeoutError,
126
+ SeltzRateLimitError,
127
+ SeltzAPIError,
128
+ SeltzError,
129
+ ) as exc:
130
+ logger.error(f"Seltz error: {exc}")
131
+ return f"Error: {exc}"
132
+ except Exception as exc:
133
+ logger.error(f"Failed to search Seltz: {exc}")
134
+ return f"Error: {exc}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.4.4
3
+ Version: 2.4.5
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
@@ -132,6 +132,8 @@ Provides-Extra: evm
132
132
  Requires-Dist: web3; extra == "evm"
133
133
  Provides-Extra: exa
134
134
  Requires-Dist: exa_py; extra == "exa"
135
+ Provides-Extra: seltz
136
+ Requires-Dist: seltz; extra == "seltz"
135
137
  Provides-Extra: fal
136
138
  Requires-Dist: fal_client; extra == "fal"
137
139
  Provides-Extra: firecrawl
@@ -308,6 +310,7 @@ Provides-Extra: tools
308
310
  Requires-Dist: agno[apify]; extra == "tools"
309
311
  Requires-Dist: agno[arxiv]; extra == "tools"
310
312
  Requires-Dist: agno[exa]; extra == "tools"
313
+ Requires-Dist: agno[seltz]; extra == "tools"
311
314
  Requires-Dist: agno[cartesia]; extra == "tools"
312
315
  Requires-Dist: agno[ddg]; extra == "tools"
313
316
  Requires-Dist: agno[duckdb]; extra == "tools"
@@ -515,6 +515,7 @@ agno/tools/replicate.py
515
515
  agno/tools/resend.py
516
516
  agno/tools/scrapegraph.py
517
517
  agno/tools/searxng.py
518
+ agno/tools/seltz.py
518
519
  agno/tools/serpapi.py
519
520
  agno/tools/serper.py
520
521
  agno/tools/shell.py
@@ -383,6 +383,9 @@ reportlab
383
383
  [scrapegraph]
384
384
  scrapegraph-py
385
385
 
386
+ [seltz]
387
+ seltz
388
+
386
389
  [singlestore]
387
390
  sqlalchemy
388
391
 
@@ -439,6 +442,7 @@ tokenizers
439
442
  agno[apify]
440
443
  agno[arxiv]
441
444
  agno[exa]
445
+ agno[seltz]
442
446
  agno[cartesia]
443
447
  agno[ddg]
444
448
  agno[duckdb]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agno"
3
- version = "2.4.4"
3
+ version = "2.4.5"
4
4
  description = "Agno: a lightweight library for building Multi-Agent Systems"
5
5
  requires-python = ">=3.7,<4"
6
6
  readme = "README.md"
@@ -109,6 +109,7 @@ duckdb = ["duckdb"]
109
109
  elevenlabs = ["elevenlabs"]
110
110
  evm = ["web3"]
111
111
  exa = ["exa_py"]
112
+ seltz = ["seltz"]
112
113
  fal = ["fal_client"]
113
114
  firecrawl = ["firecrawl-py==3.4.0"]
114
115
  tavily = ["tavily-python"]
@@ -227,6 +228,7 @@ tools = [
227
228
  "agno[arxiv]",
228
229
  # "agno[brave]", # It clashes with other dependencies
229
230
  "agno[exa]",
231
+ "agno[seltz]",
230
232
  "agno[cartesia]",
231
233
  "agno[ddg]",
232
234
  "agno[duckdb]",
@@ -447,6 +449,7 @@ module = [
447
449
  "e2b_code_interpreter.*",
448
450
  "eth_account.*",
449
451
  "exa_py.*",
452
+ "seltz.*",
450
453
  "fastapi.*",
451
454
  "fastembed.*",
452
455
  "fastmcp.*",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes