agno 1.8.0__py3-none-any.whl → 2.0.0a1__py3-none-any.whl

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 (583) hide show
  1. agno/__init__.py +8 -0
  2. agno/agent/__init__.py +19 -27
  3. agno/agent/agent.py +2781 -4126
  4. agno/api/agent.py +9 -65
  5. agno/api/api.py +5 -46
  6. agno/api/evals.py +6 -17
  7. agno/api/os.py +17 -0
  8. agno/api/routes.py +6 -41
  9. agno/api/schemas/__init__.py +9 -0
  10. agno/api/schemas/agent.py +5 -21
  11. agno/api/schemas/evals.py +7 -16
  12. agno/api/schemas/os.py +14 -0
  13. agno/api/schemas/team.py +5 -21
  14. agno/api/schemas/utils.py +21 -0
  15. agno/api/schemas/workflows.py +11 -7
  16. agno/api/settings.py +53 -0
  17. agno/api/team.py +9 -64
  18. agno/api/workflow.py +28 -0
  19. agno/cloud/aws/base.py +214 -0
  20. agno/cloud/aws/s3/__init__.py +2 -0
  21. agno/cloud/aws/s3/api_client.py +43 -0
  22. agno/cloud/aws/s3/bucket.py +195 -0
  23. agno/cloud/aws/s3/object.py +57 -0
  24. agno/db/__init__.py +24 -0
  25. agno/db/base.py +245 -0
  26. agno/db/dynamo/__init__.py +3 -0
  27. agno/db/dynamo/dynamo.py +1749 -0
  28. agno/db/dynamo/schemas.py +278 -0
  29. agno/db/dynamo/utils.py +684 -0
  30. agno/db/firestore/__init__.py +3 -0
  31. agno/db/firestore/firestore.py +1438 -0
  32. agno/db/firestore/schemas.py +130 -0
  33. agno/db/firestore/utils.py +278 -0
  34. agno/db/gcs_json/__init__.py +3 -0
  35. agno/db/gcs_json/gcs_json_db.py +1001 -0
  36. agno/db/gcs_json/utils.py +194 -0
  37. agno/db/in_memory/__init__.py +3 -0
  38. agno/db/in_memory/in_memory_db.py +888 -0
  39. agno/db/in_memory/utils.py +172 -0
  40. agno/db/json/__init__.py +3 -0
  41. agno/db/json/json_db.py +1051 -0
  42. agno/db/json/utils.py +196 -0
  43. agno/db/migrations/v1_to_v2.py +162 -0
  44. agno/db/mongo/__init__.py +3 -0
  45. agno/db/mongo/mongo.py +1417 -0
  46. agno/db/mongo/schemas.py +77 -0
  47. agno/db/mongo/utils.py +204 -0
  48. agno/db/mysql/__init__.py +3 -0
  49. agno/db/mysql/mysql.py +1719 -0
  50. agno/db/mysql/schemas.py +124 -0
  51. agno/db/mysql/utils.py +298 -0
  52. agno/db/postgres/__init__.py +3 -0
  53. agno/db/postgres/postgres.py +1720 -0
  54. agno/db/postgres/schemas.py +124 -0
  55. agno/db/postgres/utils.py +281 -0
  56. agno/db/redis/__init__.py +3 -0
  57. agno/db/redis/redis.py +1371 -0
  58. agno/db/redis/schemas.py +109 -0
  59. agno/db/redis/utils.py +288 -0
  60. agno/db/schemas/__init__.py +3 -0
  61. agno/db/schemas/evals.py +33 -0
  62. agno/db/schemas/knowledge.py +40 -0
  63. agno/db/schemas/memory.py +46 -0
  64. agno/db/singlestore/__init__.py +3 -0
  65. agno/db/singlestore/schemas.py +116 -0
  66. agno/db/singlestore/singlestore.py +1722 -0
  67. agno/db/singlestore/utils.py +327 -0
  68. agno/db/sqlite/__init__.py +3 -0
  69. agno/db/sqlite/schemas.py +119 -0
  70. agno/db/sqlite/sqlite.py +1680 -0
  71. agno/db/sqlite/utils.py +269 -0
  72. agno/db/utils.py +88 -0
  73. agno/eval/__init__.py +14 -0
  74. agno/eval/accuracy.py +142 -43
  75. agno/eval/performance.py +88 -23
  76. agno/eval/reliability.py +73 -20
  77. agno/eval/utils.py +23 -13
  78. agno/integrations/discord/__init__.py +3 -0
  79. agno/{app → integrations}/discord/client.py +10 -10
  80. agno/knowledge/__init__.py +2 -2
  81. agno/{document → knowledge}/chunking/agentic.py +2 -2
  82. agno/{document → knowledge}/chunking/document.py +2 -2
  83. agno/{document → knowledge}/chunking/fixed.py +3 -3
  84. agno/{document → knowledge}/chunking/markdown.py +2 -2
  85. agno/{document → knowledge}/chunking/recursive.py +2 -2
  86. agno/{document → knowledge}/chunking/row.py +2 -2
  87. agno/knowledge/chunking/semantic.py +59 -0
  88. agno/knowledge/chunking/strategy.py +121 -0
  89. agno/knowledge/content.py +74 -0
  90. agno/knowledge/document/__init__.py +5 -0
  91. agno/{document → knowledge/document}/base.py +12 -2
  92. agno/knowledge/embedder/__init__.py +5 -0
  93. agno/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
  94. agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
  95. agno/{embedder → knowledge/embedder}/base.py +6 -0
  96. agno/{embedder → knowledge/embedder}/cohere.py +72 -1
  97. agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
  98. agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
  99. agno/{embedder → knowledge/embedder}/google.py +74 -1
  100. agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
  101. agno/{embedder → knowledge/embedder}/jina.py +48 -2
  102. agno/knowledge/embedder/langdb.py +22 -0
  103. agno/knowledge/embedder/mistral.py +139 -0
  104. agno/{embedder → knowledge/embedder}/nebius.py +1 -1
  105. agno/{embedder → knowledge/embedder}/ollama.py +54 -3
  106. agno/knowledge/embedder/openai.py +223 -0
  107. agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
  108. agno/{embedder → knowledge/embedder}/together.py +1 -1
  109. agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
  110. agno/knowledge/knowledge.py +1515 -0
  111. agno/knowledge/reader/__init__.py +7 -0
  112. agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
  113. agno/knowledge/reader/base.py +88 -0
  114. agno/{document → knowledge}/reader/csv_reader.py +68 -15
  115. agno/knowledge/reader/docx_reader.py +83 -0
  116. agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
  117. agno/knowledge/reader/gcs_reader.py +67 -0
  118. agno/{document → knowledge}/reader/json_reader.py +30 -9
  119. agno/{document → knowledge}/reader/markdown_reader.py +36 -9
  120. agno/{document → knowledge}/reader/pdf_reader.py +79 -21
  121. agno/knowledge/reader/reader_factory.py +275 -0
  122. agno/knowledge/reader/s3_reader.py +171 -0
  123. agno/{document → knowledge}/reader/text_reader.py +31 -10
  124. agno/knowledge/reader/url_reader.py +84 -0
  125. agno/knowledge/reader/web_search_reader.py +389 -0
  126. agno/{document → knowledge}/reader/website_reader.py +37 -10
  127. agno/knowledge/reader/wikipedia_reader.py +59 -0
  128. agno/knowledge/reader/youtube_reader.py +78 -0
  129. agno/knowledge/remote_content/remote_content.py +88 -0
  130. agno/{reranker → knowledge/reranker}/base.py +1 -1
  131. agno/{reranker → knowledge/reranker}/cohere.py +2 -2
  132. agno/{reranker → knowledge/reranker}/infinity.py +2 -2
  133. agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
  134. agno/knowledge/types.py +30 -0
  135. agno/knowledge/utils.py +169 -0
  136. agno/media.py +2 -2
  137. agno/memory/__init__.py +2 -10
  138. agno/memory/manager.py +1003 -148
  139. agno/models/aimlapi/__init__.py +2 -2
  140. agno/models/aimlapi/aimlapi.py +6 -6
  141. agno/models/anthropic/claude.py +129 -82
  142. agno/models/aws/bedrock.py +107 -175
  143. agno/models/aws/claude.py +64 -18
  144. agno/models/azure/ai_foundry.py +73 -23
  145. agno/models/base.py +347 -287
  146. agno/models/cerebras/cerebras.py +84 -27
  147. agno/models/cohere/chat.py +106 -98
  148. agno/models/dashscope/dashscope.py +14 -5
  149. agno/models/google/gemini.py +123 -53
  150. agno/models/groq/groq.py +97 -35
  151. agno/models/huggingface/huggingface.py +92 -27
  152. agno/models/ibm/watsonx.py +72 -13
  153. agno/models/litellm/chat.py +85 -13
  154. agno/models/message.py +38 -144
  155. agno/models/meta/llama.py +85 -49
  156. agno/models/metrics.py +120 -0
  157. agno/models/mistral/mistral.py +90 -21
  158. agno/models/ollama/__init__.py +0 -2
  159. agno/models/ollama/chat.py +84 -46
  160. agno/models/openai/chat.py +135 -27
  161. agno/models/openai/responses.py +233 -115
  162. agno/models/perplexity/perplexity.py +26 -2
  163. agno/models/portkey/portkey.py +0 -7
  164. agno/models/response.py +14 -8
  165. agno/models/utils.py +20 -0
  166. agno/models/vercel/__init__.py +2 -2
  167. agno/models/vercel/v0.py +1 -1
  168. agno/models/vllm/__init__.py +2 -2
  169. agno/models/vllm/vllm.py +3 -3
  170. agno/models/xai/xai.py +10 -10
  171. agno/os/__init__.py +3 -0
  172. agno/os/app.py +393 -0
  173. agno/os/auth.py +47 -0
  174. agno/os/config.py +103 -0
  175. agno/os/interfaces/agui/__init__.py +3 -0
  176. agno/os/interfaces/agui/agui.py +31 -0
  177. agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
  178. agno/{app → os/interfaces}/agui/utils.py +65 -28
  179. agno/os/interfaces/base.py +21 -0
  180. agno/os/interfaces/slack/__init__.py +3 -0
  181. agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
  182. agno/os/interfaces/slack/slack.py +33 -0
  183. agno/os/interfaces/whatsapp/__init__.py +3 -0
  184. agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
  185. agno/os/interfaces/whatsapp/whatsapp.py +30 -0
  186. agno/os/router.py +843 -0
  187. agno/os/routers/__init__.py +3 -0
  188. agno/os/routers/evals/__init__.py +3 -0
  189. agno/os/routers/evals/evals.py +204 -0
  190. agno/os/routers/evals/schemas.py +142 -0
  191. agno/os/routers/evals/utils.py +161 -0
  192. agno/os/routers/knowledge/__init__.py +3 -0
  193. agno/os/routers/knowledge/knowledge.py +413 -0
  194. agno/os/routers/knowledge/schemas.py +118 -0
  195. agno/os/routers/memory/__init__.py +3 -0
  196. agno/os/routers/memory/memory.py +179 -0
  197. agno/os/routers/memory/schemas.py +58 -0
  198. agno/os/routers/metrics/__init__.py +3 -0
  199. agno/os/routers/metrics/metrics.py +58 -0
  200. agno/os/routers/metrics/schemas.py +47 -0
  201. agno/os/routers/session/__init__.py +3 -0
  202. agno/os/routers/session/session.py +163 -0
  203. agno/os/schema.py +892 -0
  204. agno/{app/playground → os}/settings.py +8 -15
  205. agno/os/utils.py +270 -0
  206. agno/reasoning/azure_ai_foundry.py +4 -4
  207. agno/reasoning/deepseek.py +4 -4
  208. agno/reasoning/default.py +6 -11
  209. agno/reasoning/groq.py +4 -4
  210. agno/reasoning/helpers.py +4 -6
  211. agno/reasoning/ollama.py +4 -4
  212. agno/reasoning/openai.py +4 -4
  213. agno/run/{response.py → agent.py} +144 -72
  214. agno/run/base.py +44 -58
  215. agno/run/cancel.py +83 -0
  216. agno/run/team.py +133 -77
  217. agno/run/workflow.py +537 -12
  218. agno/session/__init__.py +10 -0
  219. agno/session/agent.py +244 -0
  220. agno/session/summary.py +225 -0
  221. agno/session/team.py +262 -0
  222. agno/{storage/session/v2 → session}/workflow.py +47 -24
  223. agno/team/__init__.py +15 -16
  224. agno/team/team.py +2967 -4243
  225. agno/tools/agentql.py +14 -5
  226. agno/tools/airflow.py +9 -4
  227. agno/tools/api.py +7 -3
  228. agno/tools/apify.py +2 -46
  229. agno/tools/arxiv.py +8 -3
  230. agno/tools/aws_lambda.py +7 -5
  231. agno/tools/aws_ses.py +7 -1
  232. agno/tools/baidusearch.py +4 -1
  233. agno/tools/bitbucket.py +4 -4
  234. agno/tools/brandfetch.py +14 -11
  235. agno/tools/bravesearch.py +4 -1
  236. agno/tools/brightdata.py +42 -22
  237. agno/tools/browserbase.py +13 -4
  238. agno/tools/calcom.py +12 -10
  239. agno/tools/calculator.py +10 -27
  240. agno/tools/cartesia.py +18 -13
  241. agno/tools/{clickup_tool.py → clickup.py} +12 -25
  242. agno/tools/confluence.py +71 -18
  243. agno/tools/crawl4ai.py +7 -1
  244. agno/tools/csv_toolkit.py +9 -8
  245. agno/tools/dalle.py +18 -11
  246. agno/tools/daytona.py +13 -16
  247. agno/tools/decorator.py +6 -3
  248. agno/tools/desi_vocal.py +16 -7
  249. agno/tools/discord.py +11 -8
  250. agno/tools/docker.py +30 -42
  251. agno/tools/duckdb.py +34 -53
  252. agno/tools/duckduckgo.py +8 -7
  253. agno/tools/e2b.py +62 -62
  254. agno/tools/eleven_labs.py +35 -28
  255. agno/tools/email.py +4 -1
  256. agno/tools/evm.py +7 -1
  257. agno/tools/exa.py +19 -14
  258. agno/tools/fal.py +29 -29
  259. agno/tools/file.py +9 -8
  260. agno/tools/financial_datasets.py +25 -44
  261. agno/tools/firecrawl.py +22 -22
  262. agno/tools/function.py +68 -17
  263. agno/tools/giphy.py +22 -10
  264. agno/tools/github.py +48 -126
  265. agno/tools/gmail.py +46 -62
  266. agno/tools/google_bigquery.py +7 -6
  267. agno/tools/google_maps.py +11 -26
  268. agno/tools/googlesearch.py +7 -2
  269. agno/tools/googlesheets.py +21 -17
  270. agno/tools/hackernews.py +9 -5
  271. agno/tools/jina.py +5 -4
  272. agno/tools/jira.py +18 -9
  273. agno/tools/knowledge.py +31 -32
  274. agno/tools/linear.py +18 -33
  275. agno/tools/linkup.py +5 -1
  276. agno/tools/local_file_system.py +8 -5
  277. agno/tools/lumalab.py +31 -19
  278. agno/tools/mem0.py +18 -12
  279. agno/tools/memori.py +14 -10
  280. agno/tools/mlx_transcribe.py +3 -2
  281. agno/tools/models/azure_openai.py +32 -14
  282. agno/tools/models/gemini.py +58 -31
  283. agno/tools/models/groq.py +29 -20
  284. agno/tools/models/nebius.py +27 -11
  285. agno/tools/models_labs.py +39 -15
  286. agno/tools/moviepy_video.py +7 -6
  287. agno/tools/neo4j.py +134 -0
  288. agno/tools/newspaper.py +7 -2
  289. agno/tools/newspaper4k.py +8 -3
  290. agno/tools/openai.py +57 -26
  291. agno/tools/openbb.py +12 -11
  292. agno/tools/opencv.py +62 -46
  293. agno/tools/openweather.py +14 -12
  294. agno/tools/pandas.py +11 -3
  295. agno/tools/postgres.py +4 -12
  296. agno/tools/pubmed.py +4 -1
  297. agno/tools/python.py +9 -22
  298. agno/tools/reasoning.py +35 -27
  299. agno/tools/reddit.py +11 -26
  300. agno/tools/replicate.py +54 -41
  301. agno/tools/resend.py +4 -1
  302. agno/tools/scrapegraph.py +15 -14
  303. agno/tools/searxng.py +10 -23
  304. agno/tools/serpapi.py +6 -3
  305. agno/tools/serper.py +13 -4
  306. agno/tools/shell.py +9 -2
  307. agno/tools/slack.py +12 -11
  308. agno/tools/sleep.py +3 -2
  309. agno/tools/spider.py +24 -4
  310. agno/tools/sql.py +7 -6
  311. agno/tools/tavily.py +6 -4
  312. agno/tools/telegram.py +12 -4
  313. agno/tools/todoist.py +11 -31
  314. agno/tools/toolkit.py +1 -1
  315. agno/tools/trafilatura.py +22 -6
  316. agno/tools/trello.py +9 -22
  317. agno/tools/twilio.py +10 -3
  318. agno/tools/user_control_flow.py +6 -1
  319. agno/tools/valyu.py +34 -5
  320. agno/tools/visualization.py +19 -28
  321. agno/tools/webbrowser.py +4 -3
  322. agno/tools/webex.py +11 -7
  323. agno/tools/website.py +15 -46
  324. agno/tools/webtools.py +12 -4
  325. agno/tools/whatsapp.py +5 -9
  326. agno/tools/wikipedia.py +20 -13
  327. agno/tools/x.py +14 -13
  328. agno/tools/yfinance.py +13 -40
  329. agno/tools/youtube.py +26 -20
  330. agno/tools/zendesk.py +7 -2
  331. agno/tools/zep.py +10 -7
  332. agno/tools/zoom.py +10 -9
  333. agno/utils/common.py +1 -19
  334. agno/utils/events.py +95 -118
  335. agno/utils/knowledge.py +29 -0
  336. agno/utils/location.py +2 -2
  337. agno/utils/log.py +2 -2
  338. agno/utils/mcp.py +11 -5
  339. agno/utils/media.py +39 -0
  340. agno/utils/message.py +12 -1
  341. agno/utils/models/claude.py +6 -4
  342. agno/utils/models/mistral.py +8 -7
  343. agno/utils/models/schema_utils.py +3 -3
  344. agno/utils/pprint.py +33 -32
  345. agno/utils/print_response/agent.py +779 -0
  346. agno/utils/print_response/team.py +1565 -0
  347. agno/utils/print_response/workflow.py +1451 -0
  348. agno/utils/prompts.py +14 -14
  349. agno/utils/reasoning.py +87 -0
  350. agno/utils/response.py +42 -42
  351. agno/utils/string.py +8 -22
  352. agno/utils/team.py +50 -0
  353. agno/utils/timer.py +2 -2
  354. agno/vectordb/base.py +33 -21
  355. agno/vectordb/cassandra/cassandra.py +287 -23
  356. agno/vectordb/chroma/chromadb.py +482 -59
  357. agno/vectordb/clickhouse/clickhousedb.py +270 -63
  358. agno/vectordb/couchbase/couchbase.py +309 -29
  359. agno/vectordb/lancedb/lance_db.py +360 -21
  360. agno/vectordb/langchaindb/__init__.py +5 -0
  361. agno/vectordb/langchaindb/langchaindb.py +145 -0
  362. agno/vectordb/lightrag/__init__.py +5 -0
  363. agno/vectordb/lightrag/lightrag.py +374 -0
  364. agno/vectordb/llamaindex/llamaindexdb.py +127 -0
  365. agno/vectordb/milvus/milvus.py +242 -32
  366. agno/vectordb/mongodb/mongodb.py +200 -24
  367. agno/vectordb/pgvector/pgvector.py +319 -37
  368. agno/vectordb/pineconedb/pineconedb.py +221 -27
  369. agno/vectordb/qdrant/qdrant.py +356 -14
  370. agno/vectordb/singlestore/singlestore.py +286 -29
  371. agno/vectordb/surrealdb/surrealdb.py +187 -7
  372. agno/vectordb/upstashdb/upstashdb.py +342 -26
  373. agno/vectordb/weaviate/weaviate.py +227 -165
  374. agno/workflow/__init__.py +17 -13
  375. agno/workflow/{v2/condition.py → condition.py} +135 -32
  376. agno/workflow/{v2/loop.py → loop.py} +115 -28
  377. agno/workflow/{v2/parallel.py → parallel.py} +138 -108
  378. agno/workflow/{v2/router.py → router.py} +133 -32
  379. agno/workflow/{v2/step.py → step.py} +200 -42
  380. agno/workflow/{v2/steps.py → steps.py} +147 -66
  381. agno/workflow/types.py +482 -0
  382. agno/workflow/workflow.py +2394 -696
  383. agno-2.0.0a1.dist-info/METADATA +355 -0
  384. agno-2.0.0a1.dist-info/RECORD +514 -0
  385. agno/agent/metrics.py +0 -107
  386. agno/api/app.py +0 -35
  387. agno/api/playground.py +0 -92
  388. agno/api/schemas/app.py +0 -12
  389. agno/api/schemas/playground.py +0 -22
  390. agno/api/schemas/user.py +0 -35
  391. agno/api/schemas/workspace.py +0 -46
  392. agno/api/user.py +0 -160
  393. agno/api/workflows.py +0 -33
  394. agno/api/workspace.py +0 -175
  395. agno/app/agui/__init__.py +0 -3
  396. agno/app/agui/app.py +0 -17
  397. agno/app/agui/sync_router.py +0 -120
  398. agno/app/base.py +0 -186
  399. agno/app/discord/__init__.py +0 -3
  400. agno/app/fastapi/__init__.py +0 -3
  401. agno/app/fastapi/app.py +0 -107
  402. agno/app/fastapi/async_router.py +0 -457
  403. agno/app/fastapi/sync_router.py +0 -448
  404. agno/app/playground/app.py +0 -228
  405. agno/app/playground/async_router.py +0 -1050
  406. agno/app/playground/deploy.py +0 -249
  407. agno/app/playground/operator.py +0 -183
  408. agno/app/playground/schemas.py +0 -220
  409. agno/app/playground/serve.py +0 -55
  410. agno/app/playground/sync_router.py +0 -1042
  411. agno/app/playground/utils.py +0 -46
  412. agno/app/settings.py +0 -15
  413. agno/app/slack/__init__.py +0 -3
  414. agno/app/slack/app.py +0 -19
  415. agno/app/slack/sync_router.py +0 -92
  416. agno/app/utils.py +0 -54
  417. agno/app/whatsapp/__init__.py +0 -3
  418. agno/app/whatsapp/app.py +0 -15
  419. agno/app/whatsapp/sync_router.py +0 -197
  420. agno/cli/auth_server.py +0 -249
  421. agno/cli/config.py +0 -274
  422. agno/cli/console.py +0 -88
  423. agno/cli/credentials.py +0 -23
  424. agno/cli/entrypoint.py +0 -571
  425. agno/cli/operator.py +0 -357
  426. agno/cli/settings.py +0 -96
  427. agno/cli/ws/ws_cli.py +0 -817
  428. agno/constants.py +0 -13
  429. agno/document/__init__.py +0 -5
  430. agno/document/chunking/semantic.py +0 -45
  431. agno/document/chunking/strategy.py +0 -31
  432. agno/document/reader/__init__.py +0 -5
  433. agno/document/reader/base.py +0 -47
  434. agno/document/reader/docx_reader.py +0 -60
  435. agno/document/reader/gcs/pdf_reader.py +0 -44
  436. agno/document/reader/s3/pdf_reader.py +0 -59
  437. agno/document/reader/s3/text_reader.py +0 -63
  438. agno/document/reader/url_reader.py +0 -59
  439. agno/document/reader/youtube_reader.py +0 -58
  440. agno/embedder/__init__.py +0 -5
  441. agno/embedder/langdb.py +0 -80
  442. agno/embedder/mistral.py +0 -82
  443. agno/embedder/openai.py +0 -78
  444. agno/file/__init__.py +0 -5
  445. agno/file/file.py +0 -16
  446. agno/file/local/csv.py +0 -32
  447. agno/file/local/txt.py +0 -19
  448. agno/infra/app.py +0 -240
  449. agno/infra/base.py +0 -144
  450. agno/infra/context.py +0 -20
  451. agno/infra/db_app.py +0 -52
  452. agno/infra/resource.py +0 -205
  453. agno/infra/resources.py +0 -55
  454. agno/knowledge/agent.py +0 -698
  455. agno/knowledge/arxiv.py +0 -33
  456. agno/knowledge/combined.py +0 -36
  457. agno/knowledge/csv.py +0 -144
  458. agno/knowledge/csv_url.py +0 -124
  459. agno/knowledge/document.py +0 -223
  460. agno/knowledge/docx.py +0 -137
  461. agno/knowledge/firecrawl.py +0 -34
  462. agno/knowledge/gcs/__init__.py +0 -0
  463. agno/knowledge/gcs/base.py +0 -39
  464. agno/knowledge/gcs/pdf.py +0 -125
  465. agno/knowledge/json.py +0 -137
  466. agno/knowledge/langchain.py +0 -71
  467. agno/knowledge/light_rag.py +0 -273
  468. agno/knowledge/llamaindex.py +0 -66
  469. agno/knowledge/markdown.py +0 -154
  470. agno/knowledge/pdf.py +0 -164
  471. agno/knowledge/pdf_bytes.py +0 -42
  472. agno/knowledge/pdf_url.py +0 -148
  473. agno/knowledge/s3/__init__.py +0 -0
  474. agno/knowledge/s3/base.py +0 -64
  475. agno/knowledge/s3/pdf.py +0 -33
  476. agno/knowledge/s3/text.py +0 -34
  477. agno/knowledge/text.py +0 -141
  478. agno/knowledge/url.py +0 -46
  479. agno/knowledge/website.py +0 -179
  480. agno/knowledge/wikipedia.py +0 -32
  481. agno/knowledge/youtube.py +0 -35
  482. agno/memory/agent.py +0 -423
  483. agno/memory/classifier.py +0 -104
  484. agno/memory/db/__init__.py +0 -5
  485. agno/memory/db/base.py +0 -42
  486. agno/memory/db/mongodb.py +0 -189
  487. agno/memory/db/postgres.py +0 -203
  488. agno/memory/db/sqlite.py +0 -193
  489. agno/memory/memory.py +0 -22
  490. agno/memory/row.py +0 -36
  491. agno/memory/summarizer.py +0 -201
  492. agno/memory/summary.py +0 -19
  493. agno/memory/team.py +0 -415
  494. agno/memory/v2/__init__.py +0 -2
  495. agno/memory/v2/db/__init__.py +0 -1
  496. agno/memory/v2/db/base.py +0 -42
  497. agno/memory/v2/db/firestore.py +0 -339
  498. agno/memory/v2/db/mongodb.py +0 -196
  499. agno/memory/v2/db/postgres.py +0 -214
  500. agno/memory/v2/db/redis.py +0 -187
  501. agno/memory/v2/db/schema.py +0 -54
  502. agno/memory/v2/db/sqlite.py +0 -209
  503. agno/memory/v2/manager.py +0 -437
  504. agno/memory/v2/memory.py +0 -1097
  505. agno/memory/v2/schema.py +0 -55
  506. agno/memory/v2/summarizer.py +0 -215
  507. agno/memory/workflow.py +0 -38
  508. agno/models/ollama/tools.py +0 -430
  509. agno/models/qwen/__init__.py +0 -5
  510. agno/playground/__init__.py +0 -10
  511. agno/playground/deploy.py +0 -3
  512. agno/playground/playground.py +0 -3
  513. agno/playground/serve.py +0 -3
  514. agno/playground/settings.py +0 -3
  515. agno/reranker/__init__.py +0 -0
  516. agno/run/v2/__init__.py +0 -0
  517. agno/run/v2/workflow.py +0 -567
  518. agno/storage/__init__.py +0 -0
  519. agno/storage/agent/__init__.py +0 -0
  520. agno/storage/agent/dynamodb.py +0 -1
  521. agno/storage/agent/json.py +0 -1
  522. agno/storage/agent/mongodb.py +0 -1
  523. agno/storage/agent/postgres.py +0 -1
  524. agno/storage/agent/singlestore.py +0 -1
  525. agno/storage/agent/sqlite.py +0 -1
  526. agno/storage/agent/yaml.py +0 -1
  527. agno/storage/base.py +0 -60
  528. agno/storage/dynamodb.py +0 -673
  529. agno/storage/firestore.py +0 -297
  530. agno/storage/gcs_json.py +0 -261
  531. agno/storage/in_memory.py +0 -234
  532. agno/storage/json.py +0 -237
  533. agno/storage/mongodb.py +0 -328
  534. agno/storage/mysql.py +0 -685
  535. agno/storage/postgres.py +0 -682
  536. agno/storage/redis.py +0 -336
  537. agno/storage/session/__init__.py +0 -16
  538. agno/storage/session/agent.py +0 -64
  539. agno/storage/session/team.py +0 -63
  540. agno/storage/session/v2/__init__.py +0 -5
  541. agno/storage/session/workflow.py +0 -61
  542. agno/storage/singlestore.py +0 -606
  543. agno/storage/sqlite.py +0 -646
  544. agno/storage/workflow/__init__.py +0 -0
  545. agno/storage/workflow/mongodb.py +0 -1
  546. agno/storage/workflow/postgres.py +0 -1
  547. agno/storage/workflow/sqlite.py +0 -1
  548. agno/storage/yaml.py +0 -241
  549. agno/tools/thinking.py +0 -73
  550. agno/utils/defaults.py +0 -57
  551. agno/utils/filesystem.py +0 -39
  552. agno/utils/git.py +0 -52
  553. agno/utils/json_io.py +0 -30
  554. agno/utils/load_env.py +0 -19
  555. agno/utils/py_io.py +0 -19
  556. agno/utils/pyproject.py +0 -18
  557. agno/utils/resource_filter.py +0 -31
  558. agno/workflow/v2/__init__.py +0 -21
  559. agno/workflow/v2/types.py +0 -357
  560. agno/workflow/v2/workflow.py +0 -3312
  561. agno/workspace/__init__.py +0 -0
  562. agno/workspace/config.py +0 -325
  563. agno/workspace/enums.py +0 -6
  564. agno/workspace/helpers.py +0 -52
  565. agno/workspace/operator.py +0 -757
  566. agno/workspace/settings.py +0 -158
  567. agno-1.8.0.dist-info/METADATA +0 -979
  568. agno-1.8.0.dist-info/RECORD +0 -565
  569. agno-1.8.0.dist-info/entry_points.txt +0 -3
  570. /agno/{app → db/migrations}/__init__.py +0 -0
  571. /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
  572. /agno/{cli → integrations}/__init__.py +0 -0
  573. /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
  574. /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
  575. /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
  576. /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
  577. /agno/{app → os/interfaces}/slack/security.py +0 -0
  578. /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
  579. /agno/{file/local → utils/print_response}/__init__.py +0 -0
  580. /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
  581. {agno-1.8.0.dist-info → agno-2.0.0a1.dist-info}/WHEEL +0 -0
  582. {agno-1.8.0.dist-info → agno-2.0.0a1.dist-info}/licenses/LICENSE +0 -0
  583. {agno-1.8.0.dist-info → agno-2.0.0a1.dist-info}/top_level.txt +0 -0
agno/utils/events.py CHANGED
@@ -4,7 +4,7 @@ from agno.media import AudioResponse, ImageArtifact
4
4
  from agno.models.message import Citations
5
5
  from agno.models.response import ToolExecution
6
6
  from agno.reasoning.step import ReasoningStep
7
- from agno.run.response import (
7
+ from agno.run.agent import (
8
8
  MemoryUpdateCompletedEvent,
9
9
  MemoryUpdateStartedEvent,
10
10
  OutputModelResponseCompletedEvent,
@@ -14,14 +14,14 @@ from agno.run.response import (
14
14
  ReasoningCompletedEvent,
15
15
  ReasoningStartedEvent,
16
16
  ReasoningStepEvent,
17
- RunResponse,
18
- RunResponseCancelledEvent,
19
- RunResponseCompletedEvent,
20
- RunResponseContentEvent,
21
- RunResponseContinuedEvent,
22
- RunResponseErrorEvent,
23
- RunResponsePausedEvent,
24
- RunResponseStartedEvent,
17
+ RunCancelledEvent,
18
+ RunCompletedEvent,
19
+ RunContentEvent,
20
+ RunContinuedEvent,
21
+ RunErrorEvent,
22
+ RunOutput,
23
+ RunPausedEvent,
24
+ RunStartedEvent,
25
25
  ToolCallCompletedEvent,
26
26
  ToolCallStartedEvent,
27
27
  )
@@ -34,219 +34,208 @@ from agno.run.team import ParserModelResponseStartedEvent as TeamParserModelResp
34
34
  from agno.run.team import ReasoningCompletedEvent as TeamReasoningCompletedEvent
35
35
  from agno.run.team import ReasoningStartedEvent as TeamReasoningStartedEvent
36
36
  from agno.run.team import ReasoningStepEvent as TeamReasoningStepEvent
37
- from agno.run.team import RunResponseCancelledEvent as TeamRunResponseCancelledEvent
38
- from agno.run.team import RunResponseCompletedEvent as TeamRunResponseCompletedEvent
39
- from agno.run.team import RunResponseContentEvent as TeamRunResponseContentEvent
40
- from agno.run.team import RunResponseErrorEvent as TeamRunResponseErrorEvent
41
- from agno.run.team import RunResponseStartedEvent as TeamRunResponseStartedEvent
42
- from agno.run.team import TeamRunResponse
37
+ from agno.run.team import RunCancelledEvent as TeamRunCancelledEvent
38
+ from agno.run.team import RunCompletedEvent as TeamRunCompletedEvent
39
+ from agno.run.team import RunContentEvent as TeamRunContentEvent
40
+ from agno.run.team import RunErrorEvent as TeamRunErrorEvent
41
+ from agno.run.team import RunStartedEvent as TeamRunStartedEvent
42
+ from agno.run.team import TeamRunOutput
43
43
  from agno.run.team import ToolCallCompletedEvent as TeamToolCallCompletedEvent
44
44
  from agno.run.team import ToolCallStartedEvent as TeamToolCallStartedEvent
45
45
 
46
46
 
47
- def create_team_run_response_started_event(from_run_response: TeamRunResponse) -> TeamRunResponseStartedEvent:
48
- return TeamRunResponseStartedEvent(
47
+ def create_team_run_started_event(from_run_response: TeamRunOutput) -> TeamRunStartedEvent:
48
+ return TeamRunStartedEvent(
49
49
  session_id=from_run_response.session_id,
50
50
  team_id=from_run_response.team_id, # type: ignore
51
51
  team_name=from_run_response.team_name, # type: ignore
52
- team_session_id=from_run_response.team_session_id, # type: ignore
53
52
  run_id=from_run_response.run_id,
54
53
  model=from_run_response.model, # type: ignore
55
54
  model_provider=from_run_response.model_provider, # type: ignore
56
55
  )
57
56
 
58
57
 
59
- def create_run_response_started_event(from_run_response: RunResponse) -> RunResponseStartedEvent:
60
- return RunResponseStartedEvent(
58
+ def create_run_started_event(from_run_response: RunOutput) -> RunStartedEvent:
59
+ return RunStartedEvent(
61
60
  session_id=from_run_response.session_id,
62
61
  agent_id=from_run_response.agent_id, # type: ignore
63
62
  agent_name=from_run_response.agent_name, # type: ignore
64
- team_session_id=from_run_response.team_session_id, # type: ignore
65
63
  run_id=from_run_response.run_id,
66
64
  model=from_run_response.model, # type: ignore
67
65
  model_provider=from_run_response.model_provider, # type: ignore
68
66
  )
69
67
 
70
68
 
71
- def create_team_run_response_completed_event(from_run_response: TeamRunResponse) -> TeamRunResponseCompletedEvent:
72
- return TeamRunResponseCompletedEvent(
69
+ def create_team_run_completed_event(from_run_response: TeamRunOutput) -> TeamRunCompletedEvent:
70
+ return TeamRunCompletedEvent(
73
71
  session_id=from_run_response.session_id,
74
72
  team_id=from_run_response.team_id, # type: ignore
75
73
  team_name=from_run_response.team_name, # type: ignore
76
- team_session_id=from_run_response.team_session_id, # type: ignore
77
74
  run_id=from_run_response.run_id,
78
75
  content=from_run_response.content, # type: ignore
79
76
  content_type=from_run_response.content_type, # type: ignore
80
77
  reasoning_content=from_run_response.reasoning_content, # type: ignore
81
- thinking=from_run_response.thinking, # type: ignore
82
78
  citations=from_run_response.citations, # type: ignore
83
79
  images=from_run_response.images, # type: ignore
84
80
  videos=from_run_response.videos, # type: ignore
85
81
  audio=from_run_response.audio, # type: ignore
86
82
  response_audio=from_run_response.response_audio, # type: ignore
87
- extra_data=from_run_response.extra_data, # type: ignore
83
+ references=from_run_response.references, # type: ignore
84
+ additional_input=from_run_response.additional_input, # type: ignore
85
+ reasoning_steps=from_run_response.reasoning_steps, # type: ignore
86
+ reasoning_messages=from_run_response.reasoning_messages, # type: ignore
88
87
  member_responses=from_run_response.member_responses, # type: ignore
88
+ metadata=from_run_response.metadata, # type: ignore
89
+ metrics=from_run_response.metrics, # type: ignore
89
90
  )
90
91
 
91
92
 
92
- def create_run_response_completed_event(from_run_response: RunResponse) -> RunResponseCompletedEvent:
93
- return RunResponseCompletedEvent(
93
+ def create_run_completed_event(from_run_response: RunOutput) -> RunCompletedEvent:
94
+ return RunCompletedEvent(
94
95
  session_id=from_run_response.session_id,
95
96
  agent_id=from_run_response.agent_id, # type: ignore
96
97
  agent_name=from_run_response.agent_name, # type: ignore
97
- team_session_id=from_run_response.team_session_id, # type: ignore
98
98
  run_id=from_run_response.run_id,
99
99
  content=from_run_response.content, # type: ignore
100
100
  content_type=from_run_response.content_type, # type: ignore
101
101
  reasoning_content=from_run_response.reasoning_content, # type: ignore
102
- thinking=from_run_response.thinking, # type: ignore
103
102
  citations=from_run_response.citations, # type: ignore
104
103
  images=from_run_response.images, # type: ignore
105
104
  videos=from_run_response.videos, # type: ignore
106
105
  audio=from_run_response.audio, # type: ignore
107
106
  response_audio=from_run_response.response_audio, # type: ignore
108
- extra_data=from_run_response.extra_data, # type: ignore
107
+ references=from_run_response.references, # type: ignore
108
+ additional_input=from_run_response.additional_input, # type: ignore
109
+ reasoning_steps=from_run_response.reasoning_steps, # type: ignore
110
+ reasoning_messages=from_run_response.reasoning_messages, # type: ignore
111
+ metadata=from_run_response.metadata, # type: ignore
112
+ metrics=from_run_response.metrics, # type: ignore
109
113
  )
110
114
 
111
115
 
112
- def create_run_response_paused_event(
113
- from_run_response: RunResponse, tools: Optional[List[ToolExecution]] = None
114
- ) -> RunResponsePausedEvent:
115
- return RunResponsePausedEvent(
116
+ def create_run_paused_event(
117
+ from_run_response: RunOutput, tools: Optional[List[ToolExecution]] = None
118
+ ) -> RunPausedEvent:
119
+ return RunPausedEvent(
116
120
  session_id=from_run_response.session_id,
117
121
  agent_id=from_run_response.agent_id, # type: ignore
118
122
  agent_name=from_run_response.agent_name, # type: ignore
119
- team_session_id=from_run_response.team_session_id, # type: ignore
120
123
  run_id=from_run_response.run_id,
121
124
  tools=tools,
122
125
  content=from_run_response.content,
123
126
  )
124
127
 
125
128
 
126
- def create_run_response_continued_event(from_run_response: RunResponse) -> RunResponseContinuedEvent:
127
- return RunResponseContinuedEvent(
129
+ def create_run_continued_event(from_run_response: RunOutput) -> RunContinuedEvent:
130
+ return RunContinuedEvent(
128
131
  session_id=from_run_response.session_id,
129
132
  agent_id=from_run_response.agent_id, # type: ignore
130
133
  agent_name=from_run_response.agent_name, # type: ignore
131
- team_session_id=from_run_response.team_session_id, # type: ignore
132
134
  run_id=from_run_response.run_id,
133
135
  )
134
136
 
135
137
 
136
- def create_team_run_response_error_event(from_run_response: TeamRunResponse, error: str) -> TeamRunResponseErrorEvent:
137
- return TeamRunResponseErrorEvent(
138
+ def create_team_run_error_event(from_run_response: TeamRunOutput, error: str) -> TeamRunErrorEvent:
139
+ return TeamRunErrorEvent(
138
140
  session_id=from_run_response.session_id,
139
141
  team_id=from_run_response.team_id, # type: ignore
140
142
  team_name=from_run_response.team_name, # type: ignore
141
- team_session_id=from_run_response.team_session_id, # type: ignore
142
143
  run_id=from_run_response.run_id,
143
144
  content=error,
144
145
  )
145
146
 
146
147
 
147
- def create_run_response_error_event(from_run_response: RunResponse, error: str) -> RunResponseErrorEvent:
148
- return RunResponseErrorEvent(
148
+ def create_run_error_event(from_run_response: RunOutput, error: str) -> RunErrorEvent:
149
+ return RunErrorEvent(
149
150
  session_id=from_run_response.session_id,
150
151
  agent_id=from_run_response.agent_id, # type: ignore
151
152
  agent_name=from_run_response.agent_name, # type: ignore
152
- team_session_id=from_run_response.team_session_id, # type: ignore
153
153
  run_id=from_run_response.run_id,
154
154
  content=error,
155
155
  )
156
156
 
157
157
 
158
- def create_team_run_response_cancelled_event(
159
- from_run_response: TeamRunResponse, reason: str
160
- ) -> TeamRunResponseCancelledEvent:
161
- return TeamRunResponseCancelledEvent(
158
+ def create_team_run_cancelled_event(from_run_response: TeamRunOutput, reason: str) -> TeamRunCancelledEvent:
159
+ return TeamRunCancelledEvent(
162
160
  session_id=from_run_response.session_id,
163
161
  team_id=from_run_response.team_id, # type: ignore
164
162
  team_name=from_run_response.team_name, # type: ignore
165
- team_session_id=from_run_response.team_session_id, # type: ignore
166
163
  run_id=from_run_response.run_id,
167
164
  reason=reason,
168
165
  )
169
166
 
170
167
 
171
- def create_run_response_cancelled_event(from_run_response: RunResponse, reason: str) -> RunResponseCancelledEvent:
172
- return RunResponseCancelledEvent(
168
+ def create_run_cancelled_event(from_run_response: RunOutput, reason: str) -> RunCancelledEvent:
169
+ return RunCancelledEvent(
173
170
  session_id=from_run_response.session_id,
174
171
  agent_id=from_run_response.agent_id, # type: ignore
175
172
  agent_name=from_run_response.agent_name, # type: ignore
176
- team_session_id=from_run_response.team_session_id, # type: ignore
177
173
  run_id=from_run_response.run_id,
178
174
  reason=reason,
179
175
  )
180
176
 
181
177
 
182
- def create_memory_update_started_event(from_run_response: RunResponse) -> MemoryUpdateStartedEvent:
178
+ def create_memory_update_started_event(from_run_response: RunOutput) -> MemoryUpdateStartedEvent:
183
179
  return MemoryUpdateStartedEvent(
184
180
  session_id=from_run_response.session_id,
185
181
  agent_id=from_run_response.agent_id, # type: ignore
186
182
  agent_name=from_run_response.agent_name, # type: ignore
187
- team_session_id=from_run_response.team_session_id, # type: ignore
188
183
  run_id=from_run_response.run_id,
189
184
  )
190
185
 
191
186
 
192
- def create_team_memory_update_started_event(from_run_response: TeamRunResponse) -> TeamMemoryUpdateStartedEvent:
187
+ def create_team_memory_update_started_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateStartedEvent:
193
188
  return TeamMemoryUpdateStartedEvent(
194
189
  session_id=from_run_response.session_id,
195
190
  team_id=from_run_response.team_id, # type: ignore
196
191
  team_name=from_run_response.team_name, # type: ignore
197
- team_session_id=from_run_response.team_session_id, # type: ignore
198
192
  run_id=from_run_response.run_id,
199
193
  )
200
194
 
201
195
 
202
- def create_memory_update_completed_event(from_run_response: RunResponse) -> MemoryUpdateCompletedEvent:
196
+ def create_memory_update_completed_event(from_run_response: RunOutput) -> MemoryUpdateCompletedEvent:
203
197
  return MemoryUpdateCompletedEvent(
204
198
  session_id=from_run_response.session_id,
205
199
  agent_id=from_run_response.agent_id, # type: ignore
206
200
  agent_name=from_run_response.agent_name, # type: ignore
207
- team_session_id=from_run_response.team_session_id, # type: ignore
208
201
  run_id=from_run_response.run_id,
209
202
  )
210
203
 
211
204
 
212
- def create_team_memory_update_completed_event(from_run_response: TeamRunResponse) -> TeamMemoryUpdateCompletedEvent:
205
+ def create_team_memory_update_completed_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateCompletedEvent:
213
206
  return TeamMemoryUpdateCompletedEvent(
214
207
  session_id=from_run_response.session_id,
215
208
  team_id=from_run_response.team_id, # type: ignore
216
209
  team_name=from_run_response.team_name, # type: ignore
217
- team_session_id=from_run_response.team_session_id, # type: ignore
218
210
  run_id=from_run_response.run_id,
219
211
  )
220
212
 
221
213
 
222
- def create_reasoning_started_event(from_run_response: RunResponse) -> ReasoningStartedEvent:
214
+ def create_reasoning_started_event(from_run_response: RunOutput) -> ReasoningStartedEvent:
223
215
  return ReasoningStartedEvent(
224
216
  session_id=from_run_response.session_id,
225
217
  agent_id=from_run_response.agent_id, # type: ignore
226
218
  agent_name=from_run_response.agent_name, # type: ignore
227
- team_session_id=from_run_response.team_session_id, # type: ignore
228
219
  run_id=from_run_response.run_id,
229
220
  )
230
221
 
231
222
 
232
- def create_team_reasoning_started_event(from_run_response: TeamRunResponse) -> TeamReasoningStartedEvent:
223
+ def create_team_reasoning_started_event(from_run_response: TeamRunOutput) -> TeamReasoningStartedEvent:
233
224
  return TeamReasoningStartedEvent(
234
225
  session_id=from_run_response.session_id,
235
226
  team_id=from_run_response.team_id, # type: ignore
236
227
  team_name=from_run_response.team_name, # type: ignore
237
- team_session_id=from_run_response.team_session_id, # type: ignore
238
228
  run_id=from_run_response.run_id,
239
229
  )
240
230
 
241
231
 
242
232
  def create_reasoning_step_event(
243
- from_run_response: RunResponse, reasoning_step: ReasoningStep, reasoning_content: str
233
+ from_run_response: RunOutput, reasoning_step: ReasoningStep, reasoning_content: str
244
234
  ) -> ReasoningStepEvent:
245
235
  return ReasoningStepEvent(
246
236
  session_id=from_run_response.session_id,
247
237
  agent_id=from_run_response.agent_id, # type: ignore
248
238
  agent_name=from_run_response.agent_name, # type: ignore
249
- team_session_id=from_run_response.team_session_id, # type: ignore
250
239
  run_id=from_run_response.run_id,
251
240
  content=reasoning_step,
252
241
  content_type=reasoning_step.__class__.__name__,
@@ -255,13 +244,12 @@ def create_reasoning_step_event(
255
244
 
256
245
 
257
246
  def create_team_reasoning_step_event(
258
- from_run_response: TeamRunResponse, reasoning_step: ReasoningStep, reasoning_content: str
247
+ from_run_response: TeamRunOutput, reasoning_step: ReasoningStep, reasoning_content: str
259
248
  ) -> TeamReasoningStepEvent:
260
249
  return TeamReasoningStepEvent(
261
250
  session_id=from_run_response.session_id,
262
251
  team_id=from_run_response.team_id, # type: ignore
263
252
  team_name=from_run_response.team_name, # type: ignore
264
- team_session_id=from_run_response.team_session_id, # type: ignore
265
253
  run_id=from_run_response.run_id,
266
254
  content=reasoning_step,
267
255
  content_type=reasoning_step.__class__.__name__,
@@ -270,13 +258,12 @@ def create_team_reasoning_step_event(
270
258
 
271
259
 
272
260
  def create_reasoning_completed_event(
273
- from_run_response: RunResponse, content: Optional[Any] = None, content_type: Optional[str] = None
261
+ from_run_response: RunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
274
262
  ) -> ReasoningCompletedEvent:
275
263
  return ReasoningCompletedEvent(
276
264
  session_id=from_run_response.session_id,
277
265
  agent_id=from_run_response.agent_id, # type: ignore
278
266
  agent_name=from_run_response.agent_name, # type: ignore
279
- team_session_id=from_run_response.team_session_id, # type: ignore
280
267
  run_id=from_run_response.run_id,
281
268
  content=content,
282
269
  content_type=content_type or "str",
@@ -284,51 +271,47 @@ def create_reasoning_completed_event(
284
271
 
285
272
 
286
273
  def create_team_reasoning_completed_event(
287
- from_run_response: TeamRunResponse, content: Optional[Any] = None, content_type: Optional[str] = None
274
+ from_run_response: TeamRunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
288
275
  ) -> TeamReasoningCompletedEvent:
289
276
  return TeamReasoningCompletedEvent(
290
277
  session_id=from_run_response.session_id,
291
278
  team_id=from_run_response.team_id, # type: ignore
292
279
  team_name=from_run_response.team_name, # type: ignore
293
- team_session_id=from_run_response.team_session_id, # type: ignore
294
280
  run_id=from_run_response.run_id,
295
281
  content=content,
296
282
  content_type=content_type or "str",
297
283
  )
298
284
 
299
285
 
300
- def create_tool_call_started_event(from_run_response: RunResponse, tool: ToolExecution) -> ToolCallStartedEvent:
286
+ def create_tool_call_started_event(from_run_response: RunOutput, tool: ToolExecution) -> ToolCallStartedEvent:
301
287
  return ToolCallStartedEvent(
302
288
  session_id=from_run_response.session_id,
303
289
  agent_id=from_run_response.agent_id, # type: ignore
304
290
  agent_name=from_run_response.agent_name, # type: ignore
305
- team_session_id=from_run_response.team_session_id, # type: ignore
306
291
  run_id=from_run_response.run_id,
307
292
  tool=tool,
308
293
  )
309
294
 
310
295
 
311
296
  def create_team_tool_call_started_event(
312
- from_run_response: TeamRunResponse, tool: ToolExecution
297
+ from_run_response: TeamRunOutput, tool: ToolExecution
313
298
  ) -> TeamToolCallStartedEvent:
314
299
  return TeamToolCallStartedEvent(
315
300
  session_id=from_run_response.session_id,
316
301
  team_id=from_run_response.team_id, # type: ignore
317
302
  team_name=from_run_response.team_name, # type: ignore
318
- team_session_id=from_run_response.team_session_id, # type: ignore
319
303
  run_id=from_run_response.run_id,
320
304
  tool=tool,
321
305
  )
322
306
 
323
307
 
324
308
  def create_tool_call_completed_event(
325
- from_run_response: RunResponse, tool: ToolExecution, content: Optional[Any] = None
309
+ from_run_response: RunOutput, tool: ToolExecution, content: Optional[Any] = None
326
310
  ) -> ToolCallCompletedEvent:
327
311
  return ToolCallCompletedEvent(
328
312
  session_id=from_run_response.session_id,
329
313
  agent_id=from_run_response.agent_id, # type: ignore
330
314
  agent_name=from_run_response.agent_name, # type: ignore
331
- team_session_id=from_run_response.team_session_id, # type: ignore
332
315
  run_id=from_run_response.run_id,
333
316
  tool=tool,
334
317
  content=content,
@@ -339,13 +322,12 @@ def create_tool_call_completed_event(
339
322
 
340
323
 
341
324
  def create_team_tool_call_completed_event(
342
- from_run_response: TeamRunResponse, tool: ToolExecution, content: Optional[Any] = None
325
+ from_run_response: TeamRunOutput, tool: ToolExecution, content: Optional[Any] = None
343
326
  ) -> TeamToolCallCompletedEvent:
344
327
  return TeamToolCallCompletedEvent(
345
328
  session_id=from_run_response.session_id,
346
329
  team_id=from_run_response.team_id, # type: ignore
347
330
  team_name=from_run_response.team_name, # type: ignore
348
- team_session_id=from_run_response.team_session_id, # type: ignore
349
331
  run_id=from_run_response.run_id,
350
332
  tool=tool,
351
333
  content=content,
@@ -355,150 +337,145 @@ def create_team_tool_call_completed_event(
355
337
  )
356
338
 
357
339
 
358
- def create_run_response_content_event(
359
- from_run_response: RunResponse,
340
+ def create_run_output_content_event(
341
+ from_run_response: RunOutput,
360
342
  content: Optional[Any] = None,
361
343
  content_type: Optional[str] = None,
362
- thinking: Optional[str] = None,
363
344
  reasoning_content: Optional[str] = None,
364
- redacted_thinking: Optional[str] = None,
345
+ redacted_reasoning_content: Optional[str] = None,
365
346
  citations: Optional[Citations] = None,
366
347
  response_audio: Optional[AudioResponse] = None,
367
348
  image: Optional[ImageArtifact] = None,
368
- ) -> RunResponseContentEvent:
369
- thinking_combined = (thinking or "") + (redacted_thinking or "")
349
+ ) -> RunContentEvent:
350
+ thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
370
351
 
371
- return RunResponseContentEvent(
352
+ return RunContentEvent(
372
353
  session_id=from_run_response.session_id,
373
354
  agent_id=from_run_response.agent_id, # type: ignore
374
355
  agent_name=from_run_response.agent_name, # type: ignore
375
- team_session_id=from_run_response.team_session_id, # type: ignore
376
356
  run_id=from_run_response.run_id,
377
357
  content=content,
378
358
  content_type=content_type or "str",
379
- thinking=thinking_combined,
380
- reasoning_content=reasoning_content,
359
+ reasoning_content=thinking_combined,
381
360
  citations=citations,
382
361
  response_audio=response_audio,
383
362
  image=image,
384
- extra_data=from_run_response.extra_data,
363
+ references=from_run_response.references,
364
+ additional_input=from_run_response.additional_input,
365
+ reasoning_steps=from_run_response.reasoning_steps,
366
+ reasoning_messages=from_run_response.reasoning_messages,
385
367
  )
386
368
 
387
369
 
388
- def create_team_run_response_content_event(
389
- from_run_response: TeamRunResponse,
370
+ def create_team_run_output_content_event(
371
+ from_run_response: TeamRunOutput,
390
372
  content: Optional[Any] = None,
391
373
  content_type: Optional[str] = None,
392
- thinking: Optional[str] = None,
393
- redacted_thinking: Optional[str] = None,
374
+ reasoning_content: Optional[str] = None,
375
+ redacted_reasoning_content: Optional[str] = None,
394
376
  citations: Optional[Citations] = None,
395
377
  response_audio: Optional[AudioResponse] = None,
396
378
  image: Optional[ImageArtifact] = None,
397
- ) -> TeamRunResponseContentEvent:
398
- thinking_combined = (thinking or "") + (redacted_thinking or "")
399
- return TeamRunResponseContentEvent(
379
+ ) -> TeamRunContentEvent:
380
+ thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
381
+
382
+ return TeamRunContentEvent(
400
383
  session_id=from_run_response.session_id,
401
384
  team_id=from_run_response.team_id, # type: ignore
402
385
  team_name=from_run_response.team_name, # type: ignore
403
- team_session_id=from_run_response.team_session_id, # type: ignore
404
386
  run_id=from_run_response.run_id,
405
387
  content=content,
406
388
  content_type=content_type or "str",
407
- thinking=thinking_combined,
389
+ reasoning_content=thinking_combined,
408
390
  citations=citations,
409
391
  response_audio=response_audio,
410
392
  image=image,
411
- extra_data=from_run_response.extra_data,
393
+ references=from_run_response.references, # type: ignore
394
+ additional_input=from_run_response.additional_input, # type: ignore
395
+ reasoning_steps=from_run_response.reasoning_steps, # type: ignore
396
+ reasoning_messages=from_run_response.reasoning_messages, # type: ignore
412
397
  )
413
398
 
414
399
 
415
400
  def create_parser_model_response_started_event(
416
- from_run_response: RunResponse,
401
+ from_run_response: RunOutput,
417
402
  ) -> ParserModelResponseStartedEvent:
418
403
  return ParserModelResponseStartedEvent(
419
404
  session_id=from_run_response.session_id,
420
405
  agent_id=from_run_response.agent_id, # type: ignore
421
406
  agent_name=from_run_response.agent_name, # type: ignore
422
- team_session_id=from_run_response.team_session_id, # type: ignore
423
407
  run_id=from_run_response.run_id,
424
408
  )
425
409
 
426
410
 
427
411
  def create_parser_model_response_completed_event(
428
- from_run_response: RunResponse,
412
+ from_run_response: RunOutput,
429
413
  ) -> ParserModelResponseCompletedEvent:
430
414
  return ParserModelResponseCompletedEvent(
431
415
  session_id=from_run_response.session_id,
432
416
  agent_id=from_run_response.agent_id, # type: ignore
433
417
  agent_name=from_run_response.agent_name, # type: ignore
434
- team_session_id=from_run_response.team_session_id, # type: ignore
435
418
  run_id=from_run_response.run_id,
436
419
  )
437
420
 
438
421
 
439
422
  def create_team_parser_model_response_started_event(
440
- from_run_response: TeamRunResponse,
423
+ from_run_response: TeamRunOutput,
441
424
  ) -> TeamParserModelResponseStartedEvent:
442
425
  return TeamParserModelResponseStartedEvent(
443
426
  session_id=from_run_response.session_id,
444
427
  team_id=from_run_response.team_id, # type: ignore
445
428
  team_name=from_run_response.team_name, # type: ignore
446
- team_session_id=from_run_response.team_session_id, # type: ignore
447
429
  run_id=from_run_response.run_id,
448
430
  )
449
431
 
450
432
 
451
433
  def create_team_parser_model_response_completed_event(
452
- from_run_response: TeamRunResponse,
434
+ from_run_response: TeamRunOutput,
453
435
  ) -> TeamParserModelResponseCompletedEvent:
454
436
  return TeamParserModelResponseCompletedEvent(
455
437
  session_id=from_run_response.session_id,
456
438
  team_id=from_run_response.team_id, # type: ignore
457
439
  team_name=from_run_response.team_name, # type: ignore
458
- team_session_id=from_run_response.team_session_id, # type: ignore
459
440
  run_id=from_run_response.run_id,
460
441
  )
461
442
 
462
443
 
463
- def create_output_model_response_started_event(from_run_response: RunResponse) -> OutputModelResponseStartedEvent:
444
+ def create_output_model_response_started_event(from_run_response: RunOutput) -> OutputModelResponseStartedEvent:
464
445
  return OutputModelResponseStartedEvent(
465
446
  session_id=from_run_response.session_id,
466
447
  agent_id=from_run_response.agent_id, # type: ignore
467
448
  agent_name=from_run_response.agent_name, # type: ignore
468
- team_session_id=from_run_response.team_session_id, # type: ignore
469
449
  run_id=from_run_response.run_id,
470
450
  )
471
451
 
472
452
 
473
- def create_output_model_response_completed_event(from_run_response: RunResponse) -> OutputModelResponseCompletedEvent:
453
+ def create_output_model_response_completed_event(from_run_response: RunOutput) -> OutputModelResponseCompletedEvent:
474
454
  return OutputModelResponseCompletedEvent(
475
455
  session_id=from_run_response.session_id,
476
456
  agent_id=from_run_response.agent_id, # type: ignore
477
457
  agent_name=from_run_response.agent_name, # type: ignore
478
- team_session_id=from_run_response.team_session_id, # type: ignore
479
458
  run_id=from_run_response.run_id,
480
459
  )
481
460
 
482
461
 
483
462
  def create_team_output_model_response_started_event(
484
- from_run_response: TeamRunResponse,
463
+ from_run_response: TeamRunOutput,
485
464
  ) -> TeamOutputModelResponseStartedEvent:
486
465
  return TeamOutputModelResponseStartedEvent(
487
466
  session_id=from_run_response.session_id,
488
467
  team_id=from_run_response.team_id, # type: ignore
489
468
  team_name=from_run_response.team_name, # type: ignore
490
- team_session_id=from_run_response.team_session_id, # type: ignore
491
469
  run_id=from_run_response.run_id,
492
470
  )
493
471
 
494
472
 
495
473
  def create_team_output_model_response_completed_event(
496
- from_run_response: TeamRunResponse,
474
+ from_run_response: TeamRunOutput,
497
475
  ) -> TeamOutputModelResponseCompletedEvent:
498
476
  return TeamOutputModelResponseCompletedEvent(
499
477
  session_id=from_run_response.session_id,
500
478
  team_id=from_run_response.team_id, # type: ignore
501
479
  team_name=from_run_response.team_name, # type: ignore
502
- team_session_id=from_run_response.team_session_id, # type: ignore
503
480
  run_id=from_run_response.run_id,
504
481
  )
@@ -0,0 +1,29 @@
1
+ from typing import Any, Dict, Optional
2
+
3
+ from agno.utils.log import log_info
4
+
5
+
6
+ def get_agentic_or_user_search_filters(
7
+ filters: Optional[Dict[str, Any]], effective_filters: Optional[Dict[str, Any]]
8
+ ) -> Dict[str, Any]:
9
+ """Helper function to determine the final filters to use for the search.
10
+
11
+ Args:
12
+ filters: Filters passed by the agent.
13
+ effective_filters: Filters passed by user.
14
+
15
+ Returns:
16
+ Dict[str, Any]: The final filters to use for the search.
17
+ """
18
+ search_filters = {}
19
+
20
+ # If agentic filters exist and manual filters (passed by user) do not, use agentic filters
21
+ if filters and not effective_filters:
22
+ search_filters = filters
23
+
24
+ # If both agentic filters exist and manual filters (passed by user) exist, use manual filters (give priority to user and override)
25
+ if filters and effective_filters:
26
+ search_filters = effective_filters
27
+
28
+ log_info(f"Filters used by Agent: {search_filters}")
29
+ return search_filters
agno/utils/location.py CHANGED
@@ -10,10 +10,10 @@ def get_location() -> Dict[str, Any]:
10
10
  try:
11
11
  response = requests.get("https://api.ipify.org?format=json", timeout=5)
12
12
  ip = response.json()["ip"]
13
- response = requests.get(f"https://ipapi.co/{ip}/json/", timeout=5)
13
+ response = requests.get(f"http://ip-api.com/json/{ip}", timeout=5)
14
14
  if response.status_code == 200:
15
15
  data = response.json()
16
- return {"city": data.get("city"), "region": data.get("region"), "country": data.get("country_name")}
16
+ return {"city": data.get("city"), "region": data.get("region"), "country": data.get("country")}
17
17
  except Exception as e:
18
18
  log_warning(f"Failed to get location: {e}")
19
19
  return {}
agno/utils/log.py CHANGED
@@ -52,12 +52,12 @@ class AgnoLogger(logging.Logger):
52
52
  def __init__(self, name: str, level: int = logging.NOTSET):
53
53
  super().__init__(name, level)
54
54
 
55
- def debug(self, msg: str, center: bool = False, symbol: str = "*", *args, **kwargs):
55
+ def debug(self, msg: str, center: bool = False, symbol: str = "*", *args, **kwargs): # type: ignore
56
56
  if center:
57
57
  msg = center_header(str(msg), symbol)
58
58
  super().debug(msg, *args, **kwargs)
59
59
 
60
- def info(self, msg: str, center: bool = False, symbol: str = "*", *args, **kwargs):
60
+ def info(self, msg: str, center: bool = False, symbol: str = "*", *args, **kwargs): # type: ignore
61
61
  if center:
62
62
  msg = center_header(str(msg), symbol)
63
63
  super().info(msg, *args, **kwargs)