agno 2.4.4__tar.gz → 2.4.6__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 (687) hide show
  1. {agno-2.4.4 → agno-2.4.6}/PKG-INFO +36 -58
  2. agno-2.4.6/README.md +109 -0
  3. {agno-2.4.4 → agno-2.4.6}/agno/agent/agent.py +47 -39
  4. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/models.py +1 -1
  5. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/agentic.py +1 -5
  6. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/code.py +1 -1
  7. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/document.py +22 -42
  8. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/fixed.py +1 -5
  9. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/markdown.py +9 -25
  10. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/recursive.py +1 -3
  11. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/row.py +3 -2
  12. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/semantic.py +1 -1
  13. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/strategy.py +19 -0
  14. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/knowledge.py +181 -24
  15. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/text_reader.py +1 -1
  16. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/learned_knowledge.py +108 -131
  17. {agno-2.4.4 → agno-2.4.6}/agno/team/team.py +27 -20
  18. agno-2.4.6/agno/tools/seltz.py +134 -0
  19. {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/agent.py +8 -8
  20. {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/team.py +8 -8
  21. {agno-2.4.4 → agno-2.4.6}/agno.egg-info/PKG-INFO +36 -58
  22. {agno-2.4.4 → agno-2.4.6}/agno.egg-info/SOURCES.txt +1 -0
  23. {agno-2.4.4 → agno-2.4.6}/agno.egg-info/requires.txt +5 -1
  24. {agno-2.4.4 → agno-2.4.6}/pyproject.toml +5 -2
  25. agno-2.4.4/README.md +0 -134
  26. {agno-2.4.4 → agno-2.4.6}/LICENSE +0 -0
  27. {agno-2.4.4 → agno-2.4.6}/agno/__init__.py +0 -0
  28. {agno-2.4.4 → agno-2.4.6}/agno/agent/__init__.py +0 -0
  29. {agno-2.4.4 → agno-2.4.6}/agno/agent/remote.py +0 -0
  30. {agno-2.4.4 → agno-2.4.6}/agno/api/__init__.py +0 -0
  31. {agno-2.4.4 → agno-2.4.6}/agno/api/agent.py +0 -0
  32. {agno-2.4.4 → agno-2.4.6}/agno/api/api.py +0 -0
  33. {agno-2.4.4 → agno-2.4.6}/agno/api/evals.py +0 -0
  34. {agno-2.4.4 → agno-2.4.6}/agno/api/os.py +0 -0
  35. {agno-2.4.4 → agno-2.4.6}/agno/api/routes.py +0 -0
  36. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/__init__.py +0 -0
  37. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/agent.py +0 -0
  38. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/evals.py +0 -0
  39. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/os.py +0 -0
  40. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/response.py +0 -0
  41. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/team.py +0 -0
  42. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/utils.py +0 -0
  43. {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/workflows.py +0 -0
  44. {agno-2.4.4 → agno-2.4.6}/agno/api/settings.py +0 -0
  45. {agno-2.4.4 → agno-2.4.6}/agno/api/team.py +0 -0
  46. {agno-2.4.4 → agno-2.4.6}/agno/api/workflow.py +0 -0
  47. {agno-2.4.4 → agno-2.4.6}/agno/client/__init__.py +0 -0
  48. {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/__init__.py +0 -0
  49. {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/client.py +0 -0
  50. {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/schemas.py +0 -0
  51. {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/utils.py +0 -0
  52. {agno-2.4.4 → agno-2.4.6}/agno/client/os.py +0 -0
  53. {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/base.py +0 -0
  54. {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/__init__.py +0 -0
  55. {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/api_client.py +0 -0
  56. {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/bucket.py +0 -0
  57. {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/object.py +0 -0
  58. {agno-2.4.4 → agno-2.4.6}/agno/compression/__init__.py +0 -0
  59. {agno-2.4.4 → agno-2.4.6}/agno/compression/manager.py +0 -0
  60. {agno-2.4.4 → agno-2.4.6}/agno/culture/__init__.py +0 -0
  61. {agno-2.4.4 → agno-2.4.6}/agno/culture/manager.py +0 -0
  62. {agno-2.4.4 → agno-2.4.6}/agno/db/__init__.py +0 -0
  63. {agno-2.4.4 → agno-2.4.6}/agno/db/async_postgres/__init__.py +0 -0
  64. {agno-2.4.4 → agno-2.4.6}/agno/db/base.py +0 -0
  65. {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/__init__.py +0 -0
  66. {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/dynamo.py +0 -0
  67. {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/schemas.py +0 -0
  68. {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/utils.py +0 -0
  69. {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/__init__.py +0 -0
  70. {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/firestore.py +0 -0
  71. {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/schemas.py +0 -0
  72. {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/utils.py +0 -0
  73. {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/__init__.py +0 -0
  74. {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/gcs_json_db.py +0 -0
  75. {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/utils.py +0 -0
  76. {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/__init__.py +0 -0
  77. {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/in_memory_db.py +0 -0
  78. {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/utils.py +0 -0
  79. {agno-2.4.4 → agno-2.4.6}/agno/db/json/__init__.py +0 -0
  80. {agno-2.4.4 → agno-2.4.6}/agno/db/json/json_db.py +0 -0
  81. {agno-2.4.4 → agno-2.4.6}/agno/db/json/utils.py +0 -0
  82. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/__init__.py +0 -0
  83. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/manager.py +0 -0
  84. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/utils.py +0 -0
  85. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/v1_to_v2.py +0 -0
  86. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/versions/__init__.py +0 -0
  87. {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/versions/v2_3_0.py +0 -0
  88. {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/__init__.py +0 -0
  89. {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/async_mongo.py +0 -0
  90. {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/mongo.py +0 -0
  91. {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/schemas.py +0 -0
  92. {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/utils.py +0 -0
  93. {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/__init__.py +0 -0
  94. {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/async_mysql.py +0 -0
  95. {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/mysql.py +0 -0
  96. {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/schemas.py +0 -0
  97. {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/utils.py +0 -0
  98. {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/__init__.py +0 -0
  99. {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/async_postgres.py +0 -0
  100. {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/postgres.py +0 -0
  101. {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/schemas.py +0 -0
  102. {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/utils.py +0 -0
  103. {agno-2.4.4 → agno-2.4.6}/agno/db/redis/__init__.py +0 -0
  104. {agno-2.4.4 → agno-2.4.6}/agno/db/redis/redis.py +0 -0
  105. {agno-2.4.4 → agno-2.4.6}/agno/db/redis/schemas.py +0 -0
  106. {agno-2.4.4 → agno-2.4.6}/agno/db/redis/utils.py +0 -0
  107. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/__init__.py +0 -0
  108. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/culture.py +0 -0
  109. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/evals.py +0 -0
  110. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/knowledge.py +0 -0
  111. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/memory.py +0 -0
  112. {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/metrics.py +0 -0
  113. {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/__init__.py +0 -0
  114. {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/schemas.py +0 -0
  115. {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/singlestore.py +0 -0
  116. {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/utils.py +0 -0
  117. {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/__init__.py +0 -0
  118. {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/async_sqlite.py +0 -0
  119. {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/schemas.py +0 -0
  120. {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/sqlite.py +0 -0
  121. {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/utils.py +0 -0
  122. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/__init__.py +0 -0
  123. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/metrics.py +0 -0
  124. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/queries.py +0 -0
  125. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/surrealdb.py +0 -0
  126. {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/utils.py +0 -0
  127. {agno-2.4.4 → agno-2.4.6}/agno/db/utils.py +0 -0
  128. {agno-2.4.4 → agno-2.4.6}/agno/debug.py +0 -0
  129. {agno-2.4.4 → agno-2.4.6}/agno/eval/__init__.py +0 -0
  130. {agno-2.4.4 → agno-2.4.6}/agno/eval/accuracy.py +0 -0
  131. {agno-2.4.4 → agno-2.4.6}/agno/eval/agent_as_judge.py +0 -0
  132. {agno-2.4.4 → agno-2.4.6}/agno/eval/base.py +0 -0
  133. {agno-2.4.4 → agno-2.4.6}/agno/eval/performance.py +0 -0
  134. {agno-2.4.4 → agno-2.4.6}/agno/eval/reliability.py +0 -0
  135. {agno-2.4.4 → agno-2.4.6}/agno/eval/utils.py +0 -0
  136. {agno-2.4.4 → agno-2.4.6}/agno/exceptions.py +0 -0
  137. {agno-2.4.4 → agno-2.4.6}/agno/filters.py +0 -0
  138. {agno-2.4.4 → agno-2.4.6}/agno/guardrails/__init__.py +0 -0
  139. {agno-2.4.4 → agno-2.4.6}/agno/guardrails/base.py +0 -0
  140. {agno-2.4.4 → agno-2.4.6}/agno/guardrails/openai.py +0 -0
  141. {agno-2.4.4 → agno-2.4.6}/agno/guardrails/pii.py +0 -0
  142. {agno-2.4.4 → agno-2.4.6}/agno/guardrails/prompt_injection.py +0 -0
  143. {agno-2.4.4 → agno-2.4.6}/agno/hooks/__init__.py +0 -0
  144. {agno-2.4.4 → agno-2.4.6}/agno/hooks/decorator.py +0 -0
  145. {agno-2.4.4 → agno-2.4.6}/agno/integrations/__init__.py +0 -0
  146. {agno-2.4.4 → agno-2.4.6}/agno/integrations/discord/__init__.py +0 -0
  147. {agno-2.4.4 → agno-2.4.6}/agno/integrations/discord/client.py +0 -0
  148. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/__init__.py +0 -0
  149. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/__init__.py +0 -0
  150. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/content.py +0 -0
  151. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/document/__init__.py +0 -0
  152. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/document/base.py +0 -0
  153. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/__init__.py +0 -0
  154. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/aws_bedrock.py +0 -0
  155. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/azure_openai.py +0 -0
  156. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/base.py +0 -0
  157. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/cohere.py +0 -0
  158. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/fastembed.py +0 -0
  159. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/fireworks.py +0 -0
  160. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/google.py +0 -0
  161. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/huggingface.py +0 -0
  162. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/jina.py +0 -0
  163. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/langdb.py +0 -0
  164. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/mistral.py +0 -0
  165. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/nebius.py +0 -0
  166. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/ollama.py +0 -0
  167. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/openai.py +0 -0
  168. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/sentence_transformer.py +0 -0
  169. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/together.py +0 -0
  170. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/vllm.py +0 -0
  171. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/voyageai.py +0 -0
  172. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/filesystem.py +0 -0
  173. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/protocol.py +0 -0
  174. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/__init__.py +0 -0
  175. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/arxiv_reader.py +0 -0
  176. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/base.py +0 -0
  177. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/csv_reader.py +0 -0
  178. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/docx_reader.py +0 -0
  179. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/excel_reader.py +0 -0
  180. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
  181. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/firecrawl_reader.py +0 -0
  182. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/json_reader.py +0 -0
  183. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/markdown_reader.py +0 -0
  184. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/pdf_reader.py +0 -0
  185. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/pptx_reader.py +0 -0
  186. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/reader_factory.py +0 -0
  187. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/s3_reader.py +0 -0
  188. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/tavily_reader.py +0 -0
  189. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/utils/__init__.py +0 -0
  190. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/utils/spreadsheet.py +0 -0
  191. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/web_search_reader.py +0 -0
  192. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/website_reader.py +0 -0
  193. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/wikipedia_reader.py +0 -0
  194. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/youtube_reader.py +0 -0
  195. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/__init__.py +0 -0
  196. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/config.py +0 -0
  197. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/remote_content.py +0 -0
  198. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/__init__.py +0 -0
  199. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/base.py +0 -0
  200. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/cohere.py +0 -0
  201. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/infinity.py +0 -0
  202. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/sentence_transformer.py +0 -0
  203. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/types.py +0 -0
  204. {agno-2.4.4 → agno-2.4.6}/agno/knowledge/utils.py +0 -0
  205. {agno-2.4.4 → agno-2.4.6}/agno/learn/__init__.py +0 -0
  206. {agno-2.4.4 → agno-2.4.6}/agno/learn/config.py +0 -0
  207. {agno-2.4.4 → agno-2.4.6}/agno/learn/curate.py +0 -0
  208. {agno-2.4.4 → agno-2.4.6}/agno/learn/machine.py +0 -0
  209. {agno-2.4.4 → agno-2.4.6}/agno/learn/schemas.py +0 -0
  210. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/__init__.py +0 -0
  211. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/decision_log.py +0 -0
  212. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/entity_memory.py +0 -0
  213. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/protocol.py +0 -0
  214. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/session_context.py +0 -0
  215. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/user_memory.py +0 -0
  216. {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/user_profile.py +0 -0
  217. {agno-2.4.4 → agno-2.4.6}/agno/learn/utils.py +0 -0
  218. {agno-2.4.4 → agno-2.4.6}/agno/media.py +0 -0
  219. {agno-2.4.4 → agno-2.4.6}/agno/memory/__init__.py +0 -0
  220. {agno-2.4.4 → agno-2.4.6}/agno/memory/manager.py +0 -0
  221. {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/__init__.py +0 -0
  222. {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/base.py +0 -0
  223. {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/summarize.py +0 -0
  224. {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/types.py +0 -0
  225. {agno-2.4.4 → agno-2.4.6}/agno/models/__init__.py +0 -0
  226. {agno-2.4.4 → agno-2.4.6}/agno/models/aimlapi/__init__.py +0 -0
  227. {agno-2.4.4 → agno-2.4.6}/agno/models/aimlapi/aimlapi.py +0 -0
  228. {agno-2.4.4 → agno-2.4.6}/agno/models/anthropic/__init__.py +0 -0
  229. {agno-2.4.4 → agno-2.4.6}/agno/models/anthropic/claude.py +0 -0
  230. {agno-2.4.4 → agno-2.4.6}/agno/models/aws/__init__.py +0 -0
  231. {agno-2.4.4 → agno-2.4.6}/agno/models/aws/bedrock.py +0 -0
  232. {agno-2.4.4 → agno-2.4.6}/agno/models/aws/claude.py +0 -0
  233. {agno-2.4.4 → agno-2.4.6}/agno/models/azure/__init__.py +0 -0
  234. {agno-2.4.4 → agno-2.4.6}/agno/models/azure/ai_foundry.py +0 -0
  235. {agno-2.4.4 → agno-2.4.6}/agno/models/azure/openai_chat.py +0 -0
  236. {agno-2.4.4 → agno-2.4.6}/agno/models/base.py +0 -0
  237. {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/__init__.py +0 -0
  238. {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/cerebras.py +0 -0
  239. {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/cerebras_openai.py +0 -0
  240. {agno-2.4.4 → agno-2.4.6}/agno/models/cohere/__init__.py +0 -0
  241. {agno-2.4.4 → agno-2.4.6}/agno/models/cohere/chat.py +0 -0
  242. {agno-2.4.4 → agno-2.4.6}/agno/models/cometapi/__init__.py +0 -0
  243. {agno-2.4.4 → agno-2.4.6}/agno/models/cometapi/cometapi.py +0 -0
  244. {agno-2.4.4 → agno-2.4.6}/agno/models/dashscope/__init__.py +0 -0
  245. {agno-2.4.4 → agno-2.4.6}/agno/models/dashscope/dashscope.py +0 -0
  246. {agno-2.4.4 → agno-2.4.6}/agno/models/deepinfra/__init__.py +0 -0
  247. {agno-2.4.4 → agno-2.4.6}/agno/models/deepinfra/deepinfra.py +0 -0
  248. {agno-2.4.4 → agno-2.4.6}/agno/models/deepseek/__init__.py +0 -0
  249. {agno-2.4.4 → agno-2.4.6}/agno/models/deepseek/deepseek.py +0 -0
  250. {agno-2.4.4 → agno-2.4.6}/agno/models/defaults.py +0 -0
  251. {agno-2.4.4 → agno-2.4.6}/agno/models/fireworks/__init__.py +0 -0
  252. {agno-2.4.4 → agno-2.4.6}/agno/models/fireworks/fireworks.py +0 -0
  253. {agno-2.4.4 → agno-2.4.6}/agno/models/google/__init__.py +0 -0
  254. {agno-2.4.4 → agno-2.4.6}/agno/models/google/gemini.py +0 -0
  255. {agno-2.4.4 → agno-2.4.6}/agno/models/google/utils.py +0 -0
  256. {agno-2.4.4 → agno-2.4.6}/agno/models/groq/__init__.py +0 -0
  257. {agno-2.4.4 → agno-2.4.6}/agno/models/groq/groq.py +0 -0
  258. {agno-2.4.4 → agno-2.4.6}/agno/models/huggingface/__init__.py +0 -0
  259. {agno-2.4.4 → agno-2.4.6}/agno/models/huggingface/huggingface.py +0 -0
  260. {agno-2.4.4 → agno-2.4.6}/agno/models/ibm/__init__.py +0 -0
  261. {agno-2.4.4 → agno-2.4.6}/agno/models/ibm/watsonx.py +0 -0
  262. {agno-2.4.4 → agno-2.4.6}/agno/models/internlm/__init__.py +0 -0
  263. {agno-2.4.4 → agno-2.4.6}/agno/models/internlm/internlm.py +0 -0
  264. {agno-2.4.4 → agno-2.4.6}/agno/models/langdb/__init__.py +0 -0
  265. {agno-2.4.4 → agno-2.4.6}/agno/models/langdb/langdb.py +0 -0
  266. {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/__init__.py +0 -0
  267. {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/chat.py +0 -0
  268. {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/litellm_openai.py +0 -0
  269. {agno-2.4.4 → agno-2.4.6}/agno/models/llama_cpp/__init__.py +0 -0
  270. {agno-2.4.4 → agno-2.4.6}/agno/models/llama_cpp/llama_cpp.py +0 -0
  271. {agno-2.4.4 → agno-2.4.6}/agno/models/lmstudio/__init__.py +0 -0
  272. {agno-2.4.4 → agno-2.4.6}/agno/models/lmstudio/lmstudio.py +0 -0
  273. {agno-2.4.4 → agno-2.4.6}/agno/models/message.py +0 -0
  274. {agno-2.4.4 → agno-2.4.6}/agno/models/meta/__init__.py +0 -0
  275. {agno-2.4.4 → agno-2.4.6}/agno/models/meta/llama.py +0 -0
  276. {agno-2.4.4 → agno-2.4.6}/agno/models/meta/llama_openai.py +0 -0
  277. {agno-2.4.4 → agno-2.4.6}/agno/models/metrics.py +0 -0
  278. {agno-2.4.4 → agno-2.4.6}/agno/models/mistral/__init__.py +0 -0
  279. {agno-2.4.4 → agno-2.4.6}/agno/models/mistral/mistral.py +0 -0
  280. {agno-2.4.4 → agno-2.4.6}/agno/models/moonshot/__init__.py +0 -0
  281. {agno-2.4.4 → agno-2.4.6}/agno/models/moonshot/moonshot.py +0 -0
  282. {agno-2.4.4 → agno-2.4.6}/agno/models/n1n/__init__.py +0 -0
  283. {agno-2.4.4 → agno-2.4.6}/agno/models/n1n/n1n.py +0 -0
  284. {agno-2.4.4 → agno-2.4.6}/agno/models/nebius/__init__.py +0 -0
  285. {agno-2.4.4 → agno-2.4.6}/agno/models/nebius/nebius.py +0 -0
  286. {agno-2.4.4 → agno-2.4.6}/agno/models/nexus/__init__.py +0 -0
  287. {agno-2.4.4 → agno-2.4.6}/agno/models/nexus/nexus.py +0 -0
  288. {agno-2.4.4 → agno-2.4.6}/agno/models/nvidia/__init__.py +0 -0
  289. {agno-2.4.4 → agno-2.4.6}/agno/models/nvidia/nvidia.py +0 -0
  290. {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/__init__.py +0 -0
  291. {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/chat.py +0 -0
  292. {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/responses.py +0 -0
  293. {agno-2.4.4 → agno-2.4.6}/agno/models/openai/__init__.py +0 -0
  294. {agno-2.4.4 → agno-2.4.6}/agno/models/openai/chat.py +0 -0
  295. {agno-2.4.4 → agno-2.4.6}/agno/models/openai/like.py +0 -0
  296. {agno-2.4.4 → agno-2.4.6}/agno/models/openai/open_responses.py +0 -0
  297. {agno-2.4.4 → agno-2.4.6}/agno/models/openai/responses.py +0 -0
  298. {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/__init__.py +0 -0
  299. {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/openrouter.py +0 -0
  300. {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/responses.py +0 -0
  301. {agno-2.4.4 → agno-2.4.6}/agno/models/perplexity/__init__.py +0 -0
  302. {agno-2.4.4 → agno-2.4.6}/agno/models/perplexity/perplexity.py +0 -0
  303. {agno-2.4.4 → agno-2.4.6}/agno/models/portkey/__init__.py +0 -0
  304. {agno-2.4.4 → agno-2.4.6}/agno/models/portkey/portkey.py +0 -0
  305. {agno-2.4.4 → agno-2.4.6}/agno/models/requesty/__init__.py +0 -0
  306. {agno-2.4.4 → agno-2.4.6}/agno/models/requesty/requesty.py +0 -0
  307. {agno-2.4.4 → agno-2.4.6}/agno/models/response.py +0 -0
  308. {agno-2.4.4 → agno-2.4.6}/agno/models/sambanova/__init__.py +0 -0
  309. {agno-2.4.4 → agno-2.4.6}/agno/models/sambanova/sambanova.py +0 -0
  310. {agno-2.4.4 → agno-2.4.6}/agno/models/siliconflow/__init__.py +0 -0
  311. {agno-2.4.4 → agno-2.4.6}/agno/models/siliconflow/siliconflow.py +0 -0
  312. {agno-2.4.4 → agno-2.4.6}/agno/models/together/__init__.py +0 -0
  313. {agno-2.4.4 → agno-2.4.6}/agno/models/together/together.py +0 -0
  314. {agno-2.4.4 → agno-2.4.6}/agno/models/utils.py +0 -0
  315. {agno-2.4.4 → agno-2.4.6}/agno/models/vercel/__init__.py +0 -0
  316. {agno-2.4.4 → agno-2.4.6}/agno/models/vercel/v0.py +0 -0
  317. {agno-2.4.4 → agno-2.4.6}/agno/models/vertexai/__init__.py +0 -0
  318. {agno-2.4.4 → agno-2.4.6}/agno/models/vertexai/claude.py +0 -0
  319. {agno-2.4.4 → agno-2.4.6}/agno/models/vllm/__init__.py +0 -0
  320. {agno-2.4.4 → agno-2.4.6}/agno/models/vllm/vllm.py +0 -0
  321. {agno-2.4.4 → agno-2.4.6}/agno/models/xai/__init__.py +0 -0
  322. {agno-2.4.4 → agno-2.4.6}/agno/models/xai/xai.py +0 -0
  323. {agno-2.4.4 → agno-2.4.6}/agno/os/__init__.py +0 -0
  324. {agno-2.4.4 → agno-2.4.6}/agno/os/app.py +0 -0
  325. {agno-2.4.4 → agno-2.4.6}/agno/os/auth.py +0 -0
  326. {agno-2.4.4 → agno-2.4.6}/agno/os/config.py +0 -0
  327. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/__init__.py +0 -0
  328. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/__init__.py +0 -0
  329. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/a2a.py +0 -0
  330. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/router.py +0 -0
  331. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/utils.py +0 -0
  332. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/__init__.py +0 -0
  333. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/agui.py +0 -0
  334. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/router.py +0 -0
  335. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/utils.py +0 -0
  336. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/base.py +0 -0
  337. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/__init__.py +0 -0
  338. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/router.py +0 -0
  339. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/security.py +0 -0
  340. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/slack.py +0 -0
  341. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/__init__.py +0 -0
  342. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/router.py +0 -0
  343. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/security.py +0 -0
  344. {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
  345. {agno-2.4.4 → agno-2.4.6}/agno/os/managers.py +0 -0
  346. {agno-2.4.4 → agno-2.4.6}/agno/os/mcp.py +0 -0
  347. {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/__init__.py +0 -0
  348. {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/jwt.py +0 -0
  349. {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/trailing_slash.py +0 -0
  350. {agno-2.4.4 → agno-2.4.6}/agno/os/router.py +0 -0
  351. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/__init__.py +0 -0
  352. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/__init__.py +0 -0
  353. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/router.py +0 -0
  354. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/schema.py +0 -0
  355. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/components/__init__.py +0 -0
  356. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/components/components.py +0 -0
  357. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/database.py +0 -0
  358. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/__init__.py +0 -0
  359. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/evals.py +0 -0
  360. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/schemas.py +0 -0
  361. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/utils.py +0 -0
  362. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/health.py +0 -0
  363. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/home.py +0 -0
  364. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/__init__.py +0 -0
  365. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/knowledge.py +0 -0
  366. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/schemas.py +0 -0
  367. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/__init__.py +0 -0
  368. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/memory.py +0 -0
  369. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/schemas.py +0 -0
  370. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/__init__.py +0 -0
  371. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/metrics.py +0 -0
  372. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/schemas.py +0 -0
  373. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/registry/__init__.py +0 -0
  374. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/registry/registry.py +0 -0
  375. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/session/__init__.py +0 -0
  376. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/session/session.py +0 -0
  377. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/__init__.py +0 -0
  378. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/router.py +0 -0
  379. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/schema.py +0 -0
  380. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/__init__.py +0 -0
  381. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/schemas.py +0 -0
  382. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/traces.py +0 -0
  383. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/__init__.py +0 -0
  384. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/router.py +0 -0
  385. {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/schema.py +0 -0
  386. {agno-2.4.4 → agno-2.4.6}/agno/os/schema.py +0 -0
  387. {agno-2.4.4 → agno-2.4.6}/agno/os/scopes.py +0 -0
  388. {agno-2.4.4 → agno-2.4.6}/agno/os/settings.py +0 -0
  389. {agno-2.4.4 → agno-2.4.6}/agno/os/utils.py +0 -0
  390. {agno-2.4.4 → agno-2.4.6}/agno/py.typed +0 -0
  391. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/__init__.py +0 -0
  392. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/anthropic.py +0 -0
  393. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/azure_ai_foundry.py +0 -0
  394. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/deepseek.py +0 -0
  395. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/default.py +0 -0
  396. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/gemini.py +0 -0
  397. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/groq.py +0 -0
  398. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/helpers.py +0 -0
  399. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/manager.py +0 -0
  400. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/ollama.py +0 -0
  401. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/openai.py +0 -0
  402. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/step.py +0 -0
  403. {agno-2.4.4 → agno-2.4.6}/agno/reasoning/vertexai.py +0 -0
  404. {agno-2.4.4 → agno-2.4.6}/agno/registry/__init__.py +0 -0
  405. {agno-2.4.4 → agno-2.4.6}/agno/registry/registry.py +0 -0
  406. {agno-2.4.4 → agno-2.4.6}/agno/remote/__init__.py +0 -0
  407. {agno-2.4.4 → agno-2.4.6}/agno/remote/base.py +0 -0
  408. {agno-2.4.4 → agno-2.4.6}/agno/run/__init__.py +0 -0
  409. {agno-2.4.4 → agno-2.4.6}/agno/run/agent.py +0 -0
  410. {agno-2.4.4 → agno-2.4.6}/agno/run/base.py +0 -0
  411. {agno-2.4.4 → agno-2.4.6}/agno/run/cancel.py +0 -0
  412. {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/__init__.py +0 -0
  413. {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/base.py +0 -0
  414. {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/in_memory_cancellation_manager.py +0 -0
  415. {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/redis_cancellation_manager.py +0 -0
  416. {agno-2.4.4 → agno-2.4.6}/agno/run/messages.py +0 -0
  417. {agno-2.4.4 → agno-2.4.6}/agno/run/requirement.py +0 -0
  418. {agno-2.4.4 → agno-2.4.6}/agno/run/team.py +0 -0
  419. {agno-2.4.4 → agno-2.4.6}/agno/run/workflow.py +0 -0
  420. {agno-2.4.4 → agno-2.4.6}/agno/session/__init__.py +0 -0
  421. {agno-2.4.4 → agno-2.4.6}/agno/session/agent.py +0 -0
  422. {agno-2.4.4 → agno-2.4.6}/agno/session/summary.py +0 -0
  423. {agno-2.4.4 → agno-2.4.6}/agno/session/team.py +0 -0
  424. {agno-2.4.4 → agno-2.4.6}/agno/session/workflow.py +0 -0
  425. {agno-2.4.4 → agno-2.4.6}/agno/skills/__init__.py +0 -0
  426. {agno-2.4.4 → agno-2.4.6}/agno/skills/agent_skills.py +0 -0
  427. {agno-2.4.4 → agno-2.4.6}/agno/skills/errors.py +0 -0
  428. {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/__init__.py +0 -0
  429. {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/base.py +0 -0
  430. {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/local.py +0 -0
  431. {agno-2.4.4 → agno-2.4.6}/agno/skills/skill.py +0 -0
  432. {agno-2.4.4 → agno-2.4.6}/agno/skills/utils.py +0 -0
  433. {agno-2.4.4 → agno-2.4.6}/agno/skills/validator.py +0 -0
  434. {agno-2.4.4 → agno-2.4.6}/agno/table.py +0 -0
  435. {agno-2.4.4 → agno-2.4.6}/agno/team/__init__.py +0 -0
  436. {agno-2.4.4 → agno-2.4.6}/agno/team/remote.py +0 -0
  437. {agno-2.4.4 → agno-2.4.6}/agno/tools/__init__.py +0 -0
  438. {agno-2.4.4 → agno-2.4.6}/agno/tools/agentql.py +0 -0
  439. {agno-2.4.4 → agno-2.4.6}/agno/tools/airflow.py +0 -0
  440. {agno-2.4.4 → agno-2.4.6}/agno/tools/api.py +0 -0
  441. {agno-2.4.4 → agno-2.4.6}/agno/tools/apify.py +0 -0
  442. {agno-2.4.4 → agno-2.4.6}/agno/tools/arxiv.py +0 -0
  443. {agno-2.4.4 → agno-2.4.6}/agno/tools/aws_lambda.py +0 -0
  444. {agno-2.4.4 → agno-2.4.6}/agno/tools/aws_ses.py +0 -0
  445. {agno-2.4.4 → agno-2.4.6}/agno/tools/baidusearch.py +0 -0
  446. {agno-2.4.4 → agno-2.4.6}/agno/tools/bitbucket.py +0 -0
  447. {agno-2.4.4 → agno-2.4.6}/agno/tools/brandfetch.py +0 -0
  448. {agno-2.4.4 → agno-2.4.6}/agno/tools/bravesearch.py +0 -0
  449. {agno-2.4.4 → agno-2.4.6}/agno/tools/brightdata.py +0 -0
  450. {agno-2.4.4 → agno-2.4.6}/agno/tools/browserbase.py +0 -0
  451. {agno-2.4.4 → agno-2.4.6}/agno/tools/calcom.py +0 -0
  452. {agno-2.4.4 → agno-2.4.6}/agno/tools/calculator.py +0 -0
  453. {agno-2.4.4 → agno-2.4.6}/agno/tools/cartesia.py +0 -0
  454. {agno-2.4.4 → agno-2.4.6}/agno/tools/clickup.py +0 -0
  455. {agno-2.4.4 → agno-2.4.6}/agno/tools/confluence.py +0 -0
  456. {agno-2.4.4 → agno-2.4.6}/agno/tools/crawl4ai.py +0 -0
  457. {agno-2.4.4 → agno-2.4.6}/agno/tools/csv_toolkit.py +0 -0
  458. {agno-2.4.4 → agno-2.4.6}/agno/tools/dalle.py +0 -0
  459. {agno-2.4.4 → agno-2.4.6}/agno/tools/daytona.py +0 -0
  460. {agno-2.4.4 → agno-2.4.6}/agno/tools/decorator.py +0 -0
  461. {agno-2.4.4 → agno-2.4.6}/agno/tools/desi_vocal.py +0 -0
  462. {agno-2.4.4 → agno-2.4.6}/agno/tools/discord.py +0 -0
  463. {agno-2.4.4 → agno-2.4.6}/agno/tools/docker.py +0 -0
  464. {agno-2.4.4 → agno-2.4.6}/agno/tools/duckdb.py +0 -0
  465. {agno-2.4.4 → agno-2.4.6}/agno/tools/duckduckgo.py +0 -0
  466. {agno-2.4.4 → agno-2.4.6}/agno/tools/e2b.py +0 -0
  467. {agno-2.4.4 → agno-2.4.6}/agno/tools/eleven_labs.py +0 -0
  468. {agno-2.4.4 → agno-2.4.6}/agno/tools/email.py +0 -0
  469. {agno-2.4.4 → agno-2.4.6}/agno/tools/evm.py +0 -0
  470. {agno-2.4.4 → agno-2.4.6}/agno/tools/exa.py +0 -0
  471. {agno-2.4.4 → agno-2.4.6}/agno/tools/fal.py +0 -0
  472. {agno-2.4.4 → agno-2.4.6}/agno/tools/file.py +0 -0
  473. {agno-2.4.4 → agno-2.4.6}/agno/tools/file_generation.py +0 -0
  474. {agno-2.4.4 → agno-2.4.6}/agno/tools/financial_datasets.py +0 -0
  475. {agno-2.4.4 → agno-2.4.6}/agno/tools/firecrawl.py +0 -0
  476. {agno-2.4.4 → agno-2.4.6}/agno/tools/function.py +0 -0
  477. {agno-2.4.4 → agno-2.4.6}/agno/tools/giphy.py +0 -0
  478. {agno-2.4.4 → agno-2.4.6}/agno/tools/github.py +0 -0
  479. {agno-2.4.4 → agno-2.4.6}/agno/tools/gmail.py +0 -0
  480. {agno-2.4.4 → agno-2.4.6}/agno/tools/google_bigquery.py +0 -0
  481. {agno-2.4.4 → agno-2.4.6}/agno/tools/google_drive.py +0 -0
  482. {agno-2.4.4 → agno-2.4.6}/agno/tools/google_maps.py +0 -0
  483. {agno-2.4.4 → agno-2.4.6}/agno/tools/googlecalendar.py +0 -0
  484. {agno-2.4.4 → agno-2.4.6}/agno/tools/googlesheets.py +0 -0
  485. {agno-2.4.4 → agno-2.4.6}/agno/tools/hackernews.py +0 -0
  486. {agno-2.4.4 → agno-2.4.6}/agno/tools/jina.py +0 -0
  487. {agno-2.4.4 → agno-2.4.6}/agno/tools/jira.py +0 -0
  488. {agno-2.4.4 → agno-2.4.6}/agno/tools/knowledge.py +0 -0
  489. {agno-2.4.4 → agno-2.4.6}/agno/tools/linear.py +0 -0
  490. {agno-2.4.4 → agno-2.4.6}/agno/tools/linkup.py +0 -0
  491. {agno-2.4.4 → agno-2.4.6}/agno/tools/local_file_system.py +0 -0
  492. {agno-2.4.4 → agno-2.4.6}/agno/tools/lumalab.py +0 -0
  493. {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/__init__.py +0 -0
  494. {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/mcp.py +0 -0
  495. {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/multi_mcp.py +0 -0
  496. {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/params.py +0 -0
  497. {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp_toolbox.py +0 -0
  498. {agno-2.4.4 → agno-2.4.6}/agno/tools/mem0.py +0 -0
  499. {agno-2.4.4 → agno-2.4.6}/agno/tools/memory.py +0 -0
  500. {agno-2.4.4 → agno-2.4.6}/agno/tools/mlx_transcribe.py +0 -0
  501. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/__init__.py +0 -0
  502. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/azure_openai.py +0 -0
  503. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/gemini.py +0 -0
  504. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/groq.py +0 -0
  505. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/morph.py +0 -0
  506. {agno-2.4.4 → agno-2.4.6}/agno/tools/models/nebius.py +0 -0
  507. {agno-2.4.4 → agno-2.4.6}/agno/tools/models_labs.py +0 -0
  508. {agno-2.4.4 → agno-2.4.6}/agno/tools/moviepy_video.py +0 -0
  509. {agno-2.4.4 → agno-2.4.6}/agno/tools/nano_banana.py +0 -0
  510. {agno-2.4.4 → agno-2.4.6}/agno/tools/neo4j.py +0 -0
  511. {agno-2.4.4 → agno-2.4.6}/agno/tools/newspaper.py +0 -0
  512. {agno-2.4.4 → agno-2.4.6}/agno/tools/newspaper4k.py +0 -0
  513. {agno-2.4.4 → agno-2.4.6}/agno/tools/notion.py +0 -0
  514. {agno-2.4.4 → agno-2.4.6}/agno/tools/openai.py +0 -0
  515. {agno-2.4.4 → agno-2.4.6}/agno/tools/openbb.py +0 -0
  516. {agno-2.4.4 → agno-2.4.6}/agno/tools/opencv.py +0 -0
  517. {agno-2.4.4 → agno-2.4.6}/agno/tools/openweather.py +0 -0
  518. {agno-2.4.4 → agno-2.4.6}/agno/tools/oxylabs.py +0 -0
  519. {agno-2.4.4 → agno-2.4.6}/agno/tools/pandas.py +0 -0
  520. {agno-2.4.4 → agno-2.4.6}/agno/tools/parallel.py +0 -0
  521. {agno-2.4.4 → agno-2.4.6}/agno/tools/postgres.py +0 -0
  522. {agno-2.4.4 → agno-2.4.6}/agno/tools/pubmed.py +0 -0
  523. {agno-2.4.4 → agno-2.4.6}/agno/tools/python.py +0 -0
  524. {agno-2.4.4 → agno-2.4.6}/agno/tools/reasoning.py +0 -0
  525. {agno-2.4.4 → agno-2.4.6}/agno/tools/reddit.py +0 -0
  526. {agno-2.4.4 → agno-2.4.6}/agno/tools/redshift.py +0 -0
  527. {agno-2.4.4 → agno-2.4.6}/agno/tools/replicate.py +0 -0
  528. {agno-2.4.4 → agno-2.4.6}/agno/tools/resend.py +0 -0
  529. {agno-2.4.4 → agno-2.4.6}/agno/tools/scrapegraph.py +0 -0
  530. {agno-2.4.4 → agno-2.4.6}/agno/tools/searxng.py +0 -0
  531. {agno-2.4.4 → agno-2.4.6}/agno/tools/serpapi.py +0 -0
  532. {agno-2.4.4 → agno-2.4.6}/agno/tools/serper.py +0 -0
  533. {agno-2.4.4 → agno-2.4.6}/agno/tools/shell.py +0 -0
  534. {agno-2.4.4 → agno-2.4.6}/agno/tools/shopify.py +0 -0
  535. {agno-2.4.4 → agno-2.4.6}/agno/tools/slack.py +0 -0
  536. {agno-2.4.4 → agno-2.4.6}/agno/tools/sleep.py +0 -0
  537. {agno-2.4.4 → agno-2.4.6}/agno/tools/spider.py +0 -0
  538. {agno-2.4.4 → agno-2.4.6}/agno/tools/spotify.py +0 -0
  539. {agno-2.4.4 → agno-2.4.6}/agno/tools/sql.py +0 -0
  540. {agno-2.4.4 → agno-2.4.6}/agno/tools/streamlit/__init__.py +0 -0
  541. {agno-2.4.4 → agno-2.4.6}/agno/tools/streamlit/components.py +0 -0
  542. {agno-2.4.4 → agno-2.4.6}/agno/tools/tavily.py +0 -0
  543. {agno-2.4.4 → agno-2.4.6}/agno/tools/telegram.py +0 -0
  544. {agno-2.4.4 → agno-2.4.6}/agno/tools/todoist.py +0 -0
  545. {agno-2.4.4 → agno-2.4.6}/agno/tools/tool_registry.py +0 -0
  546. {agno-2.4.4 → agno-2.4.6}/agno/tools/toolkit.py +0 -0
  547. {agno-2.4.4 → agno-2.4.6}/agno/tools/trafilatura.py +0 -0
  548. {agno-2.4.4 → agno-2.4.6}/agno/tools/trello.py +0 -0
  549. {agno-2.4.4 → agno-2.4.6}/agno/tools/twilio.py +0 -0
  550. {agno-2.4.4 → agno-2.4.6}/agno/tools/unsplash.py +0 -0
  551. {agno-2.4.4 → agno-2.4.6}/agno/tools/user_control_flow.py +0 -0
  552. {agno-2.4.4 → agno-2.4.6}/agno/tools/valyu.py +0 -0
  553. {agno-2.4.4 → agno-2.4.6}/agno/tools/visualization.py +0 -0
  554. {agno-2.4.4 → agno-2.4.6}/agno/tools/webbrowser.py +0 -0
  555. {agno-2.4.4 → agno-2.4.6}/agno/tools/webex.py +0 -0
  556. {agno-2.4.4 → agno-2.4.6}/agno/tools/websearch.py +0 -0
  557. {agno-2.4.4 → agno-2.4.6}/agno/tools/website.py +0 -0
  558. {agno-2.4.4 → agno-2.4.6}/agno/tools/webtools.py +0 -0
  559. {agno-2.4.4 → agno-2.4.6}/agno/tools/whatsapp.py +0 -0
  560. {agno-2.4.4 → agno-2.4.6}/agno/tools/wikipedia.py +0 -0
  561. {agno-2.4.4 → agno-2.4.6}/agno/tools/workflow.py +0 -0
  562. {agno-2.4.4 → agno-2.4.6}/agno/tools/x.py +0 -0
  563. {agno-2.4.4 → agno-2.4.6}/agno/tools/yfinance.py +0 -0
  564. {agno-2.4.4 → agno-2.4.6}/agno/tools/youtube.py +0 -0
  565. {agno-2.4.4 → agno-2.4.6}/agno/tools/zendesk.py +0 -0
  566. {agno-2.4.4 → agno-2.4.6}/agno/tools/zep.py +0 -0
  567. {agno-2.4.4 → agno-2.4.6}/agno/tools/zoom.py +0 -0
  568. {agno-2.4.4 → agno-2.4.6}/agno/tracing/__init__.py +0 -0
  569. {agno-2.4.4 → agno-2.4.6}/agno/tracing/exporter.py +0 -0
  570. {agno-2.4.4 → agno-2.4.6}/agno/tracing/schemas.py +0 -0
  571. {agno-2.4.4 → agno-2.4.6}/agno/tracing/setup.py +0 -0
  572. {agno-2.4.4 → agno-2.4.6}/agno/utils/__init__.py +0 -0
  573. {agno-2.4.4 → agno-2.4.6}/agno/utils/agent.py +0 -0
  574. {agno-2.4.4 → agno-2.4.6}/agno/utils/audio.py +0 -0
  575. {agno-2.4.4 → agno-2.4.6}/agno/utils/certs.py +0 -0
  576. {agno-2.4.4 → agno-2.4.6}/agno/utils/code_execution.py +0 -0
  577. {agno-2.4.4 → agno-2.4.6}/agno/utils/common.py +0 -0
  578. {agno-2.4.4 → agno-2.4.6}/agno/utils/cryptography.py +0 -0
  579. {agno-2.4.4 → agno-2.4.6}/agno/utils/dttm.py +0 -0
  580. {agno-2.4.4 → agno-2.4.6}/agno/utils/enum.py +0 -0
  581. {agno-2.4.4 → agno-2.4.6}/agno/utils/env.py +0 -0
  582. {agno-2.4.4 → agno-2.4.6}/agno/utils/events.py +0 -0
  583. {agno-2.4.4 → agno-2.4.6}/agno/utils/format_str.py +0 -0
  584. {agno-2.4.4 → agno-2.4.6}/agno/utils/functions.py +0 -0
  585. {agno-2.4.4 → agno-2.4.6}/agno/utils/gemini.py +0 -0
  586. {agno-2.4.4 → agno-2.4.6}/agno/utils/hooks.py +0 -0
  587. {agno-2.4.4 → agno-2.4.6}/agno/utils/http.py +0 -0
  588. {agno-2.4.4 → agno-2.4.6}/agno/utils/json_schema.py +0 -0
  589. {agno-2.4.4 → agno-2.4.6}/agno/utils/knowledge.py +0 -0
  590. {agno-2.4.4 → agno-2.4.6}/agno/utils/location.py +0 -0
  591. {agno-2.4.4 → agno-2.4.6}/agno/utils/log.py +0 -0
  592. {agno-2.4.4 → agno-2.4.6}/agno/utils/mcp.py +0 -0
  593. {agno-2.4.4 → agno-2.4.6}/agno/utils/media.py +0 -0
  594. {agno-2.4.4 → agno-2.4.6}/agno/utils/merge_dict.py +0 -0
  595. {agno-2.4.4 → agno-2.4.6}/agno/utils/message.py +0 -0
  596. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/__init__.py +0 -0
  597. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/ai_foundry.py +0 -0
  598. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/claude.py +0 -0
  599. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/cohere.py +0 -0
  600. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/llama.py +0 -0
  601. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/mistral.py +0 -0
  602. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/openai_responses.py +0 -0
  603. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/schema_utils.py +0 -0
  604. {agno-2.4.4 → agno-2.4.6}/agno/utils/models/watsonx.py +0 -0
  605. {agno-2.4.4 → agno-2.4.6}/agno/utils/openai.py +0 -0
  606. {agno-2.4.4 → agno-2.4.6}/agno/utils/os.py +0 -0
  607. {agno-2.4.4 → agno-2.4.6}/agno/utils/pickle.py +0 -0
  608. {agno-2.4.4 → agno-2.4.6}/agno/utils/pprint.py +0 -0
  609. {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/__init__.py +0 -0
  610. {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/workflow.py +0 -0
  611. {agno-2.4.4 → agno-2.4.6}/agno/utils/prompts.py +0 -0
  612. {agno-2.4.4 → agno-2.4.6}/agno/utils/reasoning.py +0 -0
  613. {agno-2.4.4 → agno-2.4.6}/agno/utils/remote.py +0 -0
  614. {agno-2.4.4 → agno-2.4.6}/agno/utils/response.py +0 -0
  615. {agno-2.4.4 → agno-2.4.6}/agno/utils/response_iterator.py +0 -0
  616. {agno-2.4.4 → agno-2.4.6}/agno/utils/safe_formatter.py +0 -0
  617. {agno-2.4.4 → agno-2.4.6}/agno/utils/serialize.py +0 -0
  618. {agno-2.4.4 → agno-2.4.6}/agno/utils/shell.py +0 -0
  619. {agno-2.4.4 → agno-2.4.6}/agno/utils/streamlit.py +0 -0
  620. {agno-2.4.4 → agno-2.4.6}/agno/utils/string.py +0 -0
  621. {agno-2.4.4 → agno-2.4.6}/agno/utils/team.py +0 -0
  622. {agno-2.4.4 → agno-2.4.6}/agno/utils/timer.py +0 -0
  623. {agno-2.4.4 → agno-2.4.6}/agno/utils/tokens.py +0 -0
  624. {agno-2.4.4 → agno-2.4.6}/agno/utils/tools.py +0 -0
  625. {agno-2.4.4 → agno-2.4.6}/agno/utils/web.py +0 -0
  626. {agno-2.4.4 → agno-2.4.6}/agno/utils/whatsapp.py +0 -0
  627. {agno-2.4.4 → agno-2.4.6}/agno/utils/yaml_io.py +0 -0
  628. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/__init__.py +0 -0
  629. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/base.py +0 -0
  630. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/__init__.py +0 -0
  631. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/cassandra.py +0 -0
  632. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  633. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/index.py +0 -0
  634. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/chroma/__init__.py +0 -0
  635. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/chroma/chromadb.py +0 -0
  636. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/__init__.py +0 -0
  637. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  638. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/index.py +0 -0
  639. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/couchbase/__init__.py +0 -0
  640. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/couchbase/couchbase.py +0 -0
  641. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/distance.py +0 -0
  642. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lancedb/__init__.py +0 -0
  643. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lancedb/lance_db.py +0 -0
  644. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/langchaindb/__init__.py +0 -0
  645. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/langchaindb/langchaindb.py +0 -0
  646. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lightrag/__init__.py +0 -0
  647. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lightrag/lightrag.py +0 -0
  648. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/llamaindex/__init__.py +0 -0
  649. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
  650. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/milvus/__init__.py +0 -0
  651. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/milvus/milvus.py +0 -0
  652. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/mongodb/__init__.py +0 -0
  653. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/mongodb/mongodb.py +0 -0
  654. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/__init__.py +0 -0
  655. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/index.py +0 -0
  656. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/pgvector.py +0 -0
  657. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pineconedb/__init__.py +0 -0
  658. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  659. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/qdrant/__init__.py +0 -0
  660. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/qdrant/qdrant.py +0 -0
  661. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/redis/__init__.py +0 -0
  662. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/redis/redisdb.py +0 -0
  663. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/search.py +0 -0
  664. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/__init__.py +0 -0
  665. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/index.py +0 -0
  666. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/singlestore.py +0 -0
  667. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/surrealdb/__init__.py +0 -0
  668. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  669. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/upstashdb/__init__.py +0 -0
  670. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  671. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/__init__.py +0 -0
  672. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/index.py +0 -0
  673. {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/weaviate.py +0 -0
  674. {agno-2.4.4 → agno-2.4.6}/agno/workflow/__init__.py +0 -0
  675. {agno-2.4.4 → agno-2.4.6}/agno/workflow/agent.py +0 -0
  676. {agno-2.4.4 → agno-2.4.6}/agno/workflow/condition.py +0 -0
  677. {agno-2.4.4 → agno-2.4.6}/agno/workflow/loop.py +0 -0
  678. {agno-2.4.4 → agno-2.4.6}/agno/workflow/parallel.py +0 -0
  679. {agno-2.4.4 → agno-2.4.6}/agno/workflow/remote.py +0 -0
  680. {agno-2.4.4 → agno-2.4.6}/agno/workflow/router.py +0 -0
  681. {agno-2.4.4 → agno-2.4.6}/agno/workflow/step.py +0 -0
  682. {agno-2.4.4 → agno-2.4.6}/agno/workflow/steps.py +0 -0
  683. {agno-2.4.4 → agno-2.4.6}/agno/workflow/types.py +0 -0
  684. {agno-2.4.4 → agno-2.4.6}/agno/workflow/workflow.py +0 -0
  685. {agno-2.4.4 → agno-2.4.6}/agno.egg-info/dependency_links.txt +0 -0
  686. {agno-2.4.4 → agno-2.4.6}/agno.egg-info/top_level.txt +0 -0
  687. {agno-2.4.4 → agno-2.4.6}/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.6
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
@@ -264,7 +266,7 @@ Provides-Extra: excel
264
266
  Requires-Dist: openpyxl; extra == "excel"
265
267
  Requires-Dist: xlrd; extra == "excel"
266
268
  Provides-Extra: markdown
267
- Requires-Dist: unstructured; extra == "markdown"
269
+ Requires-Dist: unstructured<0.18.31; extra == "markdown"
268
270
  Requires-Dist: markdown; extra == "markdown"
269
271
  Requires-Dist: aiofiles; extra == "markdown"
270
272
  Provides-Extra: chonkie
@@ -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"
@@ -442,7 +445,7 @@ Dynamic: license-file
442
445
  </div>
443
446
 
444
447
  <p align="center">
445
- Build, run, manage multi-agent systems.
448
+ Build agents that learn.
446
449
  </p>
447
450
 
448
451
  <div align="center">
@@ -457,68 +460,58 @@ Dynamic: license-file
457
460
 
458
461
  ## What is Agno?
459
462
 
460
- Agno is a framework, runtime, and control plane for multi-agent systems.
463
+ **A Python SDK for building agents that learn and improve with every interaction.**
461
464
 
462
- | Layer | What it does |
463
- |-------|--------------|
464
- | **Framework** | Build agents, teams, and workflows with memory, knowledge, guardrails, and 100+ integrations |
465
- | **AgentOS Runtime** | Run your system in production with a stateless, secure FastAPI backend |
466
- | **Control Plane** | Test, monitor, and manage your system using the [AgentOS UI](https://os.agno.com) |
465
+ Most agents are stateless. They reason, respond, forget. Session history helps, but they're exactly as capable on day 1000 as they were on day 1.
467
466
 
468
- ## Why Agno?
467
+ Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone.
469
468
 
470
- - **Private by design.** AgentOS runs in your cloud. The control plane connects directly to your runtime from your browser. No retention costs, no vendor lock-in, no compliance headaches.
471
- - **Production-ready on day one.** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
472
- - **Fast.** 529× faster instantiation than LangGraph. 24× lower memory. [See benchmarks →](#performance)
469
+ Everything runs in your cloud. Your data never leaves your environment.
473
470
 
474
- ## Example
475
-
476
- An agent with MCP tools, persistent state, served via FastAPI:
471
+ ## Quick Example
477
472
  ```python
478
473
  from agno.agent import Agent
479
474
  from agno.db.sqlite import SqliteDb
480
- from agno.models.anthropic import Claude
481
- from agno.os import AgentOS
482
- from agno.tools.mcp import MCPTools
475
+ from agno.models.openai import OpenAIResponses
483
476
 
484
- agno_agent = Agent(
485
- name="Agno Agent",
486
- model=Claude(id="claude-sonnet-4-5"),
487
- db=SqliteDb(db_file="agno.db"),
488
- tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
489
- add_history_to_context=True,
490
- markdown=True,
477
+ agent = Agent(
478
+ model=OpenAIResponses(id="gpt-5.2"),
479
+ db=SqliteDb(db_file="tmp/agents.db"),
480
+ learning=True,
491
481
  )
492
-
493
- agent_os = AgentOS(agents=[agno_agent])
494
- app = agent_os.get_app()
495
-
496
- if __name__ == "__main__":
497
- agent_os.serve(app="agno_agent:app", reload=True)
498
482
  ```
499
483
 
500
- Run this and connect to the [AgentOS UI](https://os.agno.com):
484
+ One line. Your agent now remembers users, accumulates knowledge, and improves over time.
485
+
486
+ ## Production Stack
501
487
 
502
- https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
488
+ | Layer | What it does |
489
+ |-------|--------------|
490
+ | **SDK** | Build agents with learning, tools, knowledge, and guardrails |
491
+ | **Runtime** | Run in production using [AgentOS](https://docs.agno.com/agent-os/introduction) |
492
+ | **Control Plane** | Monitor and manage via the [AgentOS UI](https://os.agno.com) |
503
493
 
504
494
  ## Features
505
495
 
496
+ **Learning**
497
+ - User profiles that persist across sessions
498
+ - User memories that accumulate over time
499
+ - Learned knowledge that transfers across users
500
+ - Always or agentic learning modes
501
+
506
502
  **Core**
507
503
  - Model-agnostic: OpenAI, Anthropic, Google, local models
508
504
  - Type-safe I/O with `input_schema` and `output_schema`
509
505
  - Async-first, built for long-running tasks
510
506
  - Natively multimodal (text, images, audio, video, files)
511
507
 
512
- **Memory & Knowledge**
513
- - Persistent storage for session history and state
514
- - User memory across sessions
508
+ **Knowledge**
515
509
  - Agentic RAG with 20+ vector stores, hybrid search, reranking
516
- - Culture: shared long-term memory across agents
510
+ - Persistent storage for session history and state
517
511
 
518
512
  **Orchestration**
519
513
  - Human-in-the-loop (confirmations, approvals, overrides)
520
514
  - Guardrails for validation and security
521
- - Pre/post hooks for the agent lifecycle
522
515
  - First-class MCP and A2A support
523
516
  - 100+ built-in toolkits
524
517
 
@@ -526,27 +519,12 @@ https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
526
519
  - Ready-to-use FastAPI runtime
527
520
  - Integrated control plane UI
528
521
  - Evals for accuracy, performance, latency
529
- - Durable execution for resumable workflows
530
- - RBAC and per-agent permissions
531
522
 
532
523
  ## Getting Started
533
524
 
534
- 1. Follow the [quickstart guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_quickstart)
535
- 2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook) for real-world examples
536
- 3. Read the [docs](https://docs.agno.com) to go deeper
537
-
538
- ## Performance
539
-
540
- Agent workloads spawn hundreds of instances. Stateless, horizontal scalability isn't optional.
541
-
542
- | Metric | Agno | LangGraph | PydanticAI | CrewAI |
543
- |--------|------|-----------|------------|--------|
544
- | Instantiation | **3μs** | 1,587μs (529×) | 170μs (57×) | 210μs (70×) |
545
- | Memory | **6.6 KiB** | 161 KiB (24×) | 29 KiB (4×) | 66 KiB (10×) |
546
-
547
- <sub>Apple M4 MacBook Pro, Oct 2025. [Run benchmarks yourself →](https://github.com/agno-agi/agno/tree/main/cookbook/12_evals/performance)</sub>
548
-
549
- https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
525
+ 1. Follow the [quickstart](https://docs.agno.com/get-started/quickstart)
526
+ 2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
527
+ 3. Read the [docs](https://docs.agno.com)
550
528
 
551
529
  ## IDE Integration
552
530
 
@@ -558,7 +536,7 @@ Also works with VSCode, Windsurf, and similar tools.
558
536
 
559
537
  ## Contributing
560
538
 
561
- We welcome contributions. See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
539
+ See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
562
540
 
563
541
  ## Telemetry
564
542
 
agno-2.4.6/README.md ADDED
@@ -0,0 +1,109 @@
1
+ <div align="center" id="top">
2
+ <a href="https://agno.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
6
+ <img src="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg" alt="Agno">
7
+ </picture>
8
+ </a>
9
+ </div>
10
+
11
+ <p align="center">
12
+ Build agents that learn.
13
+ </p>
14
+
15
+ <div align="center">
16
+ <a href="https://docs.agno.com">Docs</a>
17
+ <span>&nbsp;•&nbsp;</span>
18
+ <a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
19
+ <span>&nbsp;•&nbsp;</span>
20
+ <a href="https://community.agno.com/">Community</a>
21
+ <span>&nbsp;•&nbsp;</span>
22
+ <a href="https://www.agno.com/discord">Discord</a>
23
+ </div>
24
+
25
+ ## What is Agno?
26
+
27
+ **A Python SDK for building agents that learn and improve with every interaction.**
28
+
29
+ Most agents are stateless. They reason, respond, forget. Session history helps, but they're exactly as capable on day 1000 as they were on day 1.
30
+
31
+ Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone.
32
+
33
+ Everything runs in your cloud. Your data never leaves your environment.
34
+
35
+ ## Quick Example
36
+ ```python
37
+ from agno.agent import Agent
38
+ from agno.db.sqlite import SqliteDb
39
+ from agno.models.openai import OpenAIResponses
40
+
41
+ agent = Agent(
42
+ model=OpenAIResponses(id="gpt-5.2"),
43
+ db=SqliteDb(db_file="tmp/agents.db"),
44
+ learning=True,
45
+ )
46
+ ```
47
+
48
+ One line. Your agent now remembers users, accumulates knowledge, and improves over time.
49
+
50
+ ## Production Stack
51
+
52
+ | Layer | What it does |
53
+ |-------|--------------|
54
+ | **SDK** | Build agents with learning, tools, knowledge, and guardrails |
55
+ | **Runtime** | Run in production using [AgentOS](https://docs.agno.com/agent-os/introduction) |
56
+ | **Control Plane** | Monitor and manage via the [AgentOS UI](https://os.agno.com) |
57
+
58
+ ## Features
59
+
60
+ **Learning**
61
+ - User profiles that persist across sessions
62
+ - User memories that accumulate over time
63
+ - Learned knowledge that transfers across users
64
+ - Always or agentic learning modes
65
+
66
+ **Core**
67
+ - Model-agnostic: OpenAI, Anthropic, Google, local models
68
+ - Type-safe I/O with `input_schema` and `output_schema`
69
+ - Async-first, built for long-running tasks
70
+ - Natively multimodal (text, images, audio, video, files)
71
+
72
+ **Knowledge**
73
+ - Agentic RAG with 20+ vector stores, hybrid search, reranking
74
+ - Persistent storage for session history and state
75
+
76
+ **Orchestration**
77
+ - Human-in-the-loop (confirmations, approvals, overrides)
78
+ - Guardrails for validation and security
79
+ - First-class MCP and A2A support
80
+ - 100+ built-in toolkits
81
+
82
+ **Production**
83
+ - Ready-to-use FastAPI runtime
84
+ - Integrated control plane UI
85
+ - Evals for accuracy, performance, latency
86
+
87
+ ## Getting Started
88
+
89
+ 1. Follow the [quickstart](https://docs.agno.com/get-started/quickstart)
90
+ 2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
91
+ 3. Read the [docs](https://docs.agno.com)
92
+
93
+ ## IDE Integration
94
+
95
+ Add our docs to your AI-enabled editor:
96
+
97
+ **Cursor:** Settings → Indexing & Docs → Add `https://docs.agno.com/llms-full.txt`
98
+
99
+ Also works with VSCode, Windsurf, and similar tools.
100
+
101
+ ## Contributing
102
+
103
+ See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
104
+
105
+ ## Telemetry
106
+
107
+ Agno logs which model providers are used to prioritize updates. Disable with `AGNO_TELEMETRY=false`.
108
+
109
+ <p align="right"><a href="#top">↑ Back to top</a></p>
@@ -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
@@ -854,8 +858,9 @@ class Agent:
854
858
  return
855
859
 
856
860
  # Handle learning=True: create default LearningMachine
861
+ # Enables user_profile (structured fields) and user_memory (unstructured observations)
857
862
  if self.learning is True:
858
- self._learning = LearningMachine(db=self.db, model=self.model, user_profile=True)
863
+ self._learning = LearningMachine(db=self.db, model=self.model, user_profile=True, user_memory=True)
859
864
  return
860
865
 
861
866
  # Handle learning=LearningMachine(...): inject dependencies
@@ -7431,6 +7436,10 @@ class Agent:
7431
7436
  config["enable_agentic_knowledge_filters"] = self.enable_agentic_knowledge_filters
7432
7437
  if self.add_knowledge_to_context:
7433
7438
  config["add_knowledge_to_context"] = self.add_knowledge_to_context
7439
+ if not self.search_knowledge:
7440
+ config["search_knowledge"] = self.search_knowledge
7441
+ if self.add_search_knowledge_instructions:
7442
+ config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
7434
7443
  # Skip knowledge_retriever as it's a callable
7435
7444
  if self.references_format != "json":
7436
7445
  config["references_format"] = self.references_format
@@ -7481,8 +7490,6 @@ class Agent:
7481
7490
  # --- Default tools settings ---
7482
7491
  if self.read_chat_history:
7483
7492
  config["read_chat_history"] = self.read_chat_history
7484
- if not self.search_knowledge:
7485
- config["search_knowledge"] = self.search_knowledge
7486
7493
  if self.update_knowledge:
7487
7494
  config["update_knowledge"] = self.update_knowledge
7488
7495
  if self.read_tool_call_history:
@@ -7806,6 +7813,7 @@ class Agent:
7806
7813
  # --- Default tools settings ---
7807
7814
  read_chat_history=config.get("read_chat_history", False),
7808
7815
  search_knowledge=config.get("search_knowledge", True),
7816
+ add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
7809
7817
  update_knowledge=config.get("update_knowledge", False),
7810
7818
  read_tool_call_history=config.get("read_tool_call_history", False),
7811
7819
  send_media_to_model=config.get("send_media_to_model", True),
@@ -8859,16 +8867,6 @@ class Agent:
8859
8867
  if self.name is not None and self.add_name_to_context:
8860
8868
  additional_information.append(f"Your name is: {self.name}.")
8861
8869
 
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
8870
  # 3.3 Build the default system message for the Agent.
8873
8871
  system_message_content: str = ""
8874
8872
  # 3.3.1 First add the Agent description if provided
@@ -9045,12 +9043,22 @@ class Agent:
9045
9043
  if learning_context:
9046
9044
  system_message_content += learning_context + "\n"
9047
9045
 
9048
- # 3.3.13 Add the system message from the Model
9046
+ # 3.3.13 then add search_knowledge instructions to the system prompt
9047
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
9048
+ build_context_fn = getattr(self.knowledge, "build_context", None)
9049
+ if callable(build_context_fn):
9050
+ knowledge_context = build_context_fn(
9051
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9052
+ )
9053
+ if knowledge_context is not None:
9054
+ system_message_content += knowledge_context + "\n"
9055
+
9056
+ # 3.3.14 Add the system message from the Model
9049
9057
  system_message_from_model = self.model.get_system_message_for_model(tools)
9050
9058
  if system_message_from_model is not None:
9051
9059
  system_message_content += system_message_from_model
9052
9060
 
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
9061
+ # 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
9062
  # or if use_json_mode is True
9055
9063
  if (
9056
9064
  output_schema is not None
@@ -9062,11 +9070,11 @@ class Agent:
9062
9070
  ):
9063
9071
  system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
9064
9072
 
9065
- # 3.3.15 Add the response model format prompt if output_schema is provided (Pydantic only)
9073
+ # 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
9066
9074
  if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
9067
9075
  system_message_content += f"{get_response_model_format_prompt(output_schema)}"
9068
9076
 
9069
- # 3.3.16 Add the session state to the system message
9077
+ # 3.3.17 Add the session state to the system message
9070
9078
  if add_session_state_to_context and session_state is not None:
9071
9079
  system_message_content += f"\n<session_state>\n{session_state}\n</session_state>\n\n"
9072
9080
 
@@ -9196,24 +9204,6 @@ class Agent:
9196
9204
  if self.name is not None and self.add_name_to_context:
9197
9205
  additional_information.append(f"Your name is: {self.name}.")
9198
9206
 
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
9207
  # 3.3 Build the default system message for the Agent.
9218
9208
  system_message_content: str = ""
9219
9209
  # 3.3.1 First add the Agent description if provided
@@ -9393,12 +9383,30 @@ class Agent:
9393
9383
  if learning_context:
9394
9384
  system_message_content += learning_context + "\n"
9395
9385
 
9396
- # 3.3.13 Add the system message from the Model
9386
+ # 3.3.13 then add search_knowledge instructions to the system prompt
9387
+ if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
9388
+ # Prefer async version if available for async databases
9389
+ abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
9390
+ build_context_fn = getattr(self.knowledge, "build_context", None)
9391
+ if callable(abuild_context_fn):
9392
+ knowledge_context = await abuild_context_fn(
9393
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9394
+ )
9395
+ if knowledge_context is not None:
9396
+ system_message_content += knowledge_context + "\n"
9397
+ elif callable(build_context_fn):
9398
+ knowledge_context = build_context_fn(
9399
+ enable_agentic_filters=self.enable_agentic_knowledge_filters,
9400
+ )
9401
+ if knowledge_context is not None:
9402
+ system_message_content += knowledge_context + "\n"
9403
+
9404
+ # 3.3.14 Add the system message from the Model
9397
9405
  system_message_from_model = self.model.get_system_message_for_model(tools)
9398
9406
  if system_message_from_model is not None:
9399
9407
  system_message_content += system_message_from_model
9400
9408
 
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
9409
+ # 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
9410
  # or if use_json_mode is True
9403
9411
  if (
9404
9412
  output_schema is not None
@@ -9410,11 +9418,11 @@ class Agent:
9410
9418
  ):
9411
9419
  system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
9412
9420
 
9413
- # 3.3.15 Add the response model format prompt if output_schema is provided (Pydantic only)
9421
+ # 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
9414
9422
  if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
9415
9423
  system_message_content += f"{get_response_model_format_prompt(output_schema)}"
9416
9424
 
9417
- # 3.3.16 Add the session state to the system message
9425
+ # 3.3.17 Add the session state to the system message
9418
9426
  if add_session_state_to_context and session_state is not None:
9419
9427
  system_message_content += self._get_formatted_session_state_for_system_message(session_state)
9420
9428
 
@@ -48,7 +48,7 @@ def surrealize_dates(record: dict) -> dict:
48
48
  if isinstance(value, date):
49
49
  copy[key] = datetime.combine(value, datetime.min.time()).replace(tzinfo=timezone.utc)
50
50
  elif key in ["created_at", "updated_at"] and isinstance(value, (int, float)):
51
- copy[key] = datetime.fromtimestamp(value).replace(tzinfo=timezone.utc)
51
+ copy[key] = datetime.fromtimestamp(value, tz=timezone.utc)
52
52
  elif key in ["created_at", "updated_at"] and isinstance(value, str):
53
53
  # Handle ISO string format - convert back to datetime object for SurrealDB
54
54
  try:
@@ -55,11 +55,7 @@ class AgenticChunking(ChunkingStrategy):
55
55
  chunk = remaining_text[:break_point].strip()
56
56
  meta_data = chunk_meta_data.copy()
57
57
  meta_data["chunk"] = chunk_number
58
- chunk_id = None
59
- if document.id:
60
- chunk_id = f"{document.id}_{chunk_number}"
61
- elif document.name:
62
- chunk_id = f"{document.name}_{chunk_number}"
58
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk)
63
59
  meta_data["chunk_size"] = len(chunk)
64
60
  chunks.append(
65
61
  Document(
@@ -82,7 +82,7 @@ class CodeChunking(ChunkingStrategy):
82
82
  for i, chunk in enumerate(chunks, 1):
83
83
  meta_data = document.meta_data.copy()
84
84
  meta_data["chunk"] = i
85
- chunk_id = f"{document.id}_{i}" if document.id else None
85
+ chunk_id = self._generate_chunk_id(document, i, chunk.text)
86
86
  meta_data["chunk_size"] = len(chunk.text)
87
87
 
88
88
  chunked_documents.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk.text))
@@ -38,17 +38,10 @@ class DocumentChunking(ChunkingStrategy):
38
38
  if current_chunk:
39
39
  meta_data = chunk_meta_data.copy()
40
40
  meta_data["chunk"] = chunk_number
41
- chunk_id = None
42
- if document.id:
43
- chunk_id = f"{document.id}_{chunk_number}"
44
- elif document.name:
45
- chunk_id = f"{document.name}_{chunk_number}"
46
- meta_data["chunk_size"] = len("\n\n".join(current_chunk))
47
- chunks.append(
48
- Document(
49
- id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk)
50
- )
51
- )
41
+ chunk_content = "\n\n".join(current_chunk)
42
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
43
+ meta_data["chunk_size"] = len(chunk_content)
44
+ chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
52
45
  chunk_number += 1
53
46
  current_chunk = []
54
47
  current_size = 0
@@ -70,18 +63,15 @@ class DocumentChunking(ChunkingStrategy):
70
63
  if current_chunk:
71
64
  meta_data = chunk_meta_data.copy()
72
65
  meta_data["chunk"] = chunk_number
73
- chunk_id = None
74
- if document.id:
75
- chunk_id = f"{document.id}_{chunk_number}"
76
- elif document.name:
77
- chunk_id = f"{document.name}_{chunk_number}"
78
- meta_data["chunk_size"] = len(" ".join(current_chunk))
66
+ chunk_content = " ".join(current_chunk)
67
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
68
+ meta_data["chunk_size"] = len(chunk_content)
79
69
  chunks.append(
80
70
  Document(
81
71
  id=chunk_id,
82
72
  name=document.name,
83
73
  meta_data=meta_data,
84
- content=" ".join(current_chunk),
74
+ content=chunk_content,
85
75
  )
86
76
  )
87
77
  chunk_number += 1
@@ -94,18 +84,11 @@ class DocumentChunking(ChunkingStrategy):
94
84
  else:
95
85
  meta_data = chunk_meta_data.copy()
96
86
  meta_data["chunk"] = chunk_number
97
- chunk_id = None
98
- if document.id:
99
- chunk_id = f"{document.id}_{chunk_number}"
100
- elif document.name:
101
- chunk_id = f"{document.name}_{chunk_number}"
102
- meta_data["chunk_size"] = len("\n\n".join(current_chunk))
87
+ chunk_content = "\n\n".join(current_chunk)
88
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
89
+ meta_data["chunk_size"] = len(chunk_content)
103
90
  if current_chunk:
104
- chunks.append(
105
- Document(
106
- id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk)
107
- )
108
- )
91
+ chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
109
92
  chunk_number += 1
110
93
  current_chunk = [para]
111
94
  current_size = para_size
@@ -113,15 +96,10 @@ class DocumentChunking(ChunkingStrategy):
113
96
  if current_chunk:
114
97
  meta_data = chunk_meta_data.copy()
115
98
  meta_data["chunk"] = chunk_number
116
- chunk_id = None
117
- if document.id:
118
- chunk_id = f"{document.id}_{chunk_number}"
119
- elif document.name:
120
- chunk_id = f"{document.name}_{chunk_number}"
121
- meta_data["chunk_size"] = len("\n\n".join(current_chunk))
122
- chunks.append(
123
- Document(id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk))
124
- )
99
+ chunk_content = "\n\n".join(current_chunk)
100
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
101
+ meta_data["chunk_size"] = len(chunk_content)
102
+ chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
125
103
 
126
104
  # Handle overlap if specified
127
105
  if self.overlap > 0:
@@ -131,11 +109,11 @@ class DocumentChunking(ChunkingStrategy):
131
109
  # Add overlap from previous chunk
132
110
  prev_text = chunks[i - 1].content[-self.overlap :]
133
111
  meta_data = chunk_meta_data.copy()
134
- meta_data["chunk"] = chunk_number
135
- chunk_id = None
136
- if document.id:
137
- chunk_id = f"{document.id}_{chunk_number}"
112
+ # Use the chunk's existing metadata and ID instead of stale chunk_number
113
+ meta_data["chunk"] = chunks[i].meta_data["chunk"]
114
+ chunk_id = chunks[i].id
138
115
  meta_data["chunk_size"] = len(prev_text + chunks[i].content)
116
+
139
117
  if prev_text:
140
118
  overlapped_chunks.append(
141
119
  Document(
@@ -145,6 +123,8 @@ class DocumentChunking(ChunkingStrategy):
145
123
  content=prev_text + chunks[i].content,
146
124
  )
147
125
  )
126
+ else:
127
+ overlapped_chunks.append(chunks[i])
148
128
  else:
149
129
  overlapped_chunks.append(chunks[i])
150
130
  chunks = overlapped_chunks
@@ -38,11 +38,7 @@ class FixedSizeChunking(ChunkingStrategy):
38
38
  chunk = content[start:end]
39
39
  meta_data = chunk_meta_data.copy()
40
40
  meta_data["chunk"] = chunk_number
41
- chunk_id = None
42
- if document.id:
43
- chunk_id = f"{document.id}_{chunk_number}"
44
- elif document.name:
45
- chunk_id = f"{document.name}_{chunk_number}"
41
+ chunk_id = self._generate_chunk_id(document, chunk_number, chunk)
46
42
  meta_data["chunk_size"] = len(chunk)
47
43
  chunked_documents.append(
48
44
  Document(