agno 1.8.1__py3-none-any.whl → 2.0.0__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 (590) hide show
  1. agno/__init__.py +8 -0
  2. agno/agent/__init__.py +19 -27
  3. agno/agent/agent.py +3143 -4170
  4. agno/api/agent.py +11 -67
  5. agno/api/api.py +5 -46
  6. agno/api/evals.py +8 -19
  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 +11 -66
  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 +1743 -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 +1432 -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 +882 -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 +1045 -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 +1416 -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 +297 -0
  52. agno/db/postgres/__init__.py +3 -0
  53. agno/db/postgres/postgres.py +1710 -0
  54. agno/db/postgres/schemas.py +124 -0
  55. agno/db/postgres/utils.py +280 -0
  56. agno/db/redis/__init__.py +3 -0
  57. agno/db/redis/redis.py +1367 -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 +1712 -0
  67. agno/db/singlestore/utils.py +326 -0
  68. agno/db/sqlite/__init__.py +3 -0
  69. agno/db/sqlite/schemas.py +119 -0
  70. agno/db/sqlite/sqlite.py +1676 -0
  71. agno/db/sqlite/utils.py +268 -0
  72. agno/db/utils.py +88 -0
  73. agno/eval/__init__.py +14 -0
  74. agno/eval/accuracy.py +154 -48
  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 +15 -11
  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 +1551 -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 +47 -65
  115. agno/knowledge/reader/docx_reader.py +83 -0
  116. agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
  117. agno/{document → knowledge}/reader/json_reader.py +30 -9
  118. agno/{document → knowledge}/reader/markdown_reader.py +58 -9
  119. agno/{document → knowledge}/reader/pdf_reader.py +71 -126
  120. agno/knowledge/reader/reader_factory.py +268 -0
  121. agno/knowledge/reader/s3_reader.py +101 -0
  122. agno/{document → knowledge}/reader/text_reader.py +31 -10
  123. agno/knowledge/reader/url_reader.py +128 -0
  124. agno/knowledge/reader/web_search_reader.py +366 -0
  125. agno/{document → knowledge}/reader/website_reader.py +37 -10
  126. agno/knowledge/reader/wikipedia_reader.py +59 -0
  127. agno/knowledge/reader/youtube_reader.py +78 -0
  128. agno/knowledge/remote_content/remote_content.py +88 -0
  129. agno/{reranker → knowledge/reranker}/base.py +1 -1
  130. agno/{reranker → knowledge/reranker}/cohere.py +2 -2
  131. agno/{reranker → knowledge/reranker}/infinity.py +2 -2
  132. agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
  133. agno/knowledge/types.py +30 -0
  134. agno/knowledge/utils.py +169 -0
  135. agno/media.py +269 -268
  136. agno/memory/__init__.py +2 -10
  137. agno/memory/manager.py +1003 -148
  138. agno/models/aimlapi/__init__.py +2 -2
  139. agno/models/aimlapi/aimlapi.py +6 -6
  140. agno/models/anthropic/claude.py +131 -131
  141. agno/models/aws/bedrock.py +110 -182
  142. agno/models/aws/claude.py +64 -18
  143. agno/models/azure/ai_foundry.py +73 -23
  144. agno/models/base.py +346 -290
  145. agno/models/cerebras/cerebras.py +84 -27
  146. agno/models/cohere/chat.py +106 -98
  147. agno/models/google/gemini.py +105 -46
  148. agno/models/groq/groq.py +97 -35
  149. agno/models/huggingface/huggingface.py +92 -27
  150. agno/models/ibm/watsonx.py +72 -13
  151. agno/models/litellm/chat.py +85 -13
  152. agno/models/message.py +46 -151
  153. agno/models/meta/llama.py +85 -49
  154. agno/models/metrics.py +120 -0
  155. agno/models/mistral/mistral.py +90 -21
  156. agno/models/ollama/__init__.py +0 -2
  157. agno/models/ollama/chat.py +85 -47
  158. agno/models/openai/chat.py +154 -37
  159. agno/models/openai/responses.py +178 -105
  160. agno/models/perplexity/perplexity.py +26 -2
  161. agno/models/portkey/portkey.py +0 -7
  162. agno/models/response.py +15 -9
  163. agno/models/utils.py +20 -0
  164. agno/models/vercel/__init__.py +2 -2
  165. agno/models/vercel/v0.py +1 -1
  166. agno/models/vllm/__init__.py +2 -2
  167. agno/models/vllm/vllm.py +3 -3
  168. agno/models/xai/xai.py +10 -10
  169. agno/os/__init__.py +3 -0
  170. agno/os/app.py +497 -0
  171. agno/os/auth.py +47 -0
  172. agno/os/config.py +103 -0
  173. agno/os/interfaces/agui/__init__.py +3 -0
  174. agno/os/interfaces/agui/agui.py +31 -0
  175. agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
  176. agno/{app → os/interfaces}/agui/utils.py +77 -33
  177. agno/os/interfaces/base.py +21 -0
  178. agno/os/interfaces/slack/__init__.py +3 -0
  179. agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
  180. agno/os/interfaces/slack/slack.py +32 -0
  181. agno/os/interfaces/whatsapp/__init__.py +3 -0
  182. agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
  183. agno/os/interfaces/whatsapp/whatsapp.py +29 -0
  184. agno/os/mcp.py +235 -0
  185. agno/os/router.py +1400 -0
  186. agno/os/routers/__init__.py +3 -0
  187. agno/os/routers/evals/__init__.py +3 -0
  188. agno/os/routers/evals/evals.py +393 -0
  189. agno/os/routers/evals/schemas.py +142 -0
  190. agno/os/routers/evals/utils.py +161 -0
  191. agno/os/routers/knowledge/__init__.py +3 -0
  192. agno/os/routers/knowledge/knowledge.py +850 -0
  193. agno/os/routers/knowledge/schemas.py +118 -0
  194. agno/os/routers/memory/__init__.py +3 -0
  195. agno/os/routers/memory/memory.py +410 -0
  196. agno/os/routers/memory/schemas.py +58 -0
  197. agno/os/routers/metrics/__init__.py +3 -0
  198. agno/os/routers/metrics/metrics.py +178 -0
  199. agno/os/routers/metrics/schemas.py +47 -0
  200. agno/os/routers/session/__init__.py +3 -0
  201. agno/os/routers/session/session.py +536 -0
  202. agno/os/schema.py +945 -0
  203. agno/{app/playground → os}/settings.py +7 -15
  204. agno/os/utils.py +270 -0
  205. agno/reasoning/azure_ai_foundry.py +4 -4
  206. agno/reasoning/deepseek.py +4 -4
  207. agno/reasoning/default.py +6 -11
  208. agno/reasoning/groq.py +4 -4
  209. agno/reasoning/helpers.py +4 -6
  210. agno/reasoning/ollama.py +4 -4
  211. agno/reasoning/openai.py +4 -4
  212. agno/run/agent.py +633 -0
  213. agno/run/base.py +53 -77
  214. agno/run/cancel.py +81 -0
  215. agno/run/team.py +243 -96
  216. agno/run/workflow.py +550 -12
  217. agno/session/__init__.py +10 -0
  218. agno/session/agent.py +244 -0
  219. agno/session/summary.py +225 -0
  220. agno/session/team.py +262 -0
  221. agno/{storage/session/v2 → session}/workflow.py +47 -24
  222. agno/team/__init__.py +15 -16
  223. agno/team/team.py +3260 -4824
  224. agno/tools/agentql.py +14 -5
  225. agno/tools/airflow.py +9 -4
  226. agno/tools/api.py +7 -3
  227. agno/tools/apify.py +2 -46
  228. agno/tools/arxiv.py +8 -3
  229. agno/tools/aws_lambda.py +7 -5
  230. agno/tools/aws_ses.py +7 -1
  231. agno/tools/baidusearch.py +4 -1
  232. agno/tools/bitbucket.py +4 -4
  233. agno/tools/brandfetch.py +14 -11
  234. agno/tools/bravesearch.py +4 -1
  235. agno/tools/brightdata.py +43 -23
  236. agno/tools/browserbase.py +13 -4
  237. agno/tools/calcom.py +12 -10
  238. agno/tools/calculator.py +10 -27
  239. agno/tools/cartesia.py +20 -17
  240. agno/tools/{clickup_tool.py → clickup.py} +12 -25
  241. agno/tools/confluence.py +8 -8
  242. agno/tools/crawl4ai.py +7 -1
  243. agno/tools/csv_toolkit.py +9 -8
  244. agno/tools/dalle.py +22 -12
  245. agno/tools/daytona.py +13 -16
  246. agno/tools/decorator.py +6 -3
  247. agno/tools/desi_vocal.py +17 -8
  248. agno/tools/discord.py +11 -8
  249. agno/tools/docker.py +30 -42
  250. agno/tools/duckdb.py +34 -53
  251. agno/tools/duckduckgo.py +8 -7
  252. agno/tools/e2b.py +62 -62
  253. agno/tools/eleven_labs.py +36 -29
  254. agno/tools/email.py +4 -1
  255. agno/tools/evm.py +7 -1
  256. agno/tools/exa.py +19 -14
  257. agno/tools/fal.py +30 -30
  258. agno/tools/file.py +9 -8
  259. agno/tools/financial_datasets.py +25 -44
  260. agno/tools/firecrawl.py +22 -22
  261. agno/tools/function.py +127 -18
  262. agno/tools/giphy.py +23 -11
  263. agno/tools/github.py +48 -126
  264. agno/tools/gmail.py +45 -61
  265. agno/tools/google_bigquery.py +7 -6
  266. agno/tools/google_maps.py +11 -26
  267. agno/tools/googlesearch.py +7 -2
  268. agno/tools/googlesheets.py +21 -17
  269. agno/tools/hackernews.py +9 -5
  270. agno/tools/jina.py +5 -4
  271. agno/tools/jira.py +18 -9
  272. agno/tools/knowledge.py +31 -32
  273. agno/tools/linear.py +19 -34
  274. agno/tools/linkup.py +5 -1
  275. agno/tools/local_file_system.py +8 -5
  276. agno/tools/lumalab.py +32 -20
  277. agno/tools/mcp.py +1 -2
  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 +33 -15
  282. agno/tools/models/gemini.py +59 -32
  283. agno/tools/models/groq.py +30 -23
  284. agno/tools/models/nebius.py +28 -12
  285. agno/tools/models_labs.py +40 -16
  286. agno/tools/moviepy_video.py +7 -6
  287. agno/tools/neo4j.py +10 -8
  288. agno/tools/newspaper.py +7 -2
  289. agno/tools/newspaper4k.py +8 -3
  290. agno/tools/openai.py +58 -32
  291. agno/tools/openbb.py +12 -11
  292. agno/tools/opencv.py +63 -47
  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 +55 -42
  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 +100 -123
  335. agno/utils/gemini.py +32 -2
  336. agno/utils/knowledge.py +29 -0
  337. agno/utils/log.py +54 -4
  338. agno/utils/mcp.py +68 -10
  339. agno/utils/media.py +39 -0
  340. agno/utils/message.py +12 -1
  341. agno/utils/models/aws_claude.py +1 -1
  342. agno/utils/models/claude.py +47 -4
  343. agno/utils/models/cohere.py +1 -1
  344. agno/utils/models/mistral.py +8 -7
  345. agno/utils/models/schema_utils.py +3 -3
  346. agno/utils/models/watsonx.py +1 -1
  347. agno/utils/openai.py +1 -1
  348. agno/utils/pprint.py +33 -32
  349. agno/utils/print_response/agent.py +779 -0
  350. agno/utils/print_response/team.py +1669 -0
  351. agno/utils/print_response/workflow.py +1451 -0
  352. agno/utils/prompts.py +14 -14
  353. agno/utils/reasoning.py +87 -0
  354. agno/utils/response.py +42 -42
  355. agno/utils/streamlit.py +481 -0
  356. agno/utils/string.py +8 -22
  357. agno/utils/team.py +50 -0
  358. agno/utils/timer.py +2 -2
  359. agno/vectordb/base.py +33 -21
  360. agno/vectordb/cassandra/cassandra.py +287 -23
  361. agno/vectordb/chroma/chromadb.py +482 -59
  362. agno/vectordb/clickhouse/clickhousedb.py +270 -63
  363. agno/vectordb/couchbase/couchbase.py +309 -29
  364. agno/vectordb/lancedb/lance_db.py +360 -21
  365. agno/vectordb/langchaindb/__init__.py +5 -0
  366. agno/vectordb/langchaindb/langchaindb.py +145 -0
  367. agno/vectordb/lightrag/__init__.py +5 -0
  368. agno/vectordb/lightrag/lightrag.py +374 -0
  369. agno/vectordb/llamaindex/llamaindexdb.py +127 -0
  370. agno/vectordb/milvus/milvus.py +242 -32
  371. agno/vectordb/mongodb/mongodb.py +200 -24
  372. agno/vectordb/pgvector/pgvector.py +319 -37
  373. agno/vectordb/pineconedb/pineconedb.py +221 -27
  374. agno/vectordb/qdrant/qdrant.py +334 -14
  375. agno/vectordb/singlestore/singlestore.py +286 -29
  376. agno/vectordb/surrealdb/surrealdb.py +187 -7
  377. agno/vectordb/upstashdb/upstashdb.py +342 -26
  378. agno/vectordb/weaviate/weaviate.py +227 -165
  379. agno/workflow/__init__.py +17 -13
  380. agno/workflow/{v2/condition.py → condition.py} +135 -32
  381. agno/workflow/{v2/loop.py → loop.py} +115 -28
  382. agno/workflow/{v2/parallel.py → parallel.py} +138 -108
  383. agno/workflow/{v2/router.py → router.py} +133 -32
  384. agno/workflow/{v2/step.py → step.py} +207 -49
  385. agno/workflow/{v2/steps.py → steps.py} +147 -66
  386. agno/workflow/types.py +482 -0
  387. agno/workflow/workflow.py +2410 -696
  388. agno-2.0.0.dist-info/METADATA +494 -0
  389. agno-2.0.0.dist-info/RECORD +515 -0
  390. agno-2.0.0.dist-info/licenses/LICENSE +201 -0
  391. agno/agent/metrics.py +0 -107
  392. agno/api/app.py +0 -35
  393. agno/api/playground.py +0 -92
  394. agno/api/schemas/app.py +0 -12
  395. agno/api/schemas/playground.py +0 -22
  396. agno/api/schemas/user.py +0 -35
  397. agno/api/schemas/workspace.py +0 -46
  398. agno/api/user.py +0 -160
  399. agno/api/workflows.py +0 -33
  400. agno/api/workspace.py +0 -175
  401. agno/app/agui/__init__.py +0 -3
  402. agno/app/agui/app.py +0 -17
  403. agno/app/agui/sync_router.py +0 -120
  404. agno/app/base.py +0 -186
  405. agno/app/discord/__init__.py +0 -3
  406. agno/app/fastapi/__init__.py +0 -3
  407. agno/app/fastapi/app.py +0 -107
  408. agno/app/fastapi/async_router.py +0 -457
  409. agno/app/fastapi/sync_router.py +0 -448
  410. agno/app/playground/app.py +0 -228
  411. agno/app/playground/async_router.py +0 -1050
  412. agno/app/playground/deploy.py +0 -249
  413. agno/app/playground/operator.py +0 -183
  414. agno/app/playground/schemas.py +0 -220
  415. agno/app/playground/serve.py +0 -55
  416. agno/app/playground/sync_router.py +0 -1042
  417. agno/app/playground/utils.py +0 -46
  418. agno/app/settings.py +0 -15
  419. agno/app/slack/__init__.py +0 -3
  420. agno/app/slack/app.py +0 -19
  421. agno/app/slack/sync_router.py +0 -92
  422. agno/app/utils.py +0 -54
  423. agno/app/whatsapp/__init__.py +0 -3
  424. agno/app/whatsapp/app.py +0 -15
  425. agno/app/whatsapp/sync_router.py +0 -197
  426. agno/cli/auth_server.py +0 -249
  427. agno/cli/config.py +0 -274
  428. agno/cli/console.py +0 -88
  429. agno/cli/credentials.py +0 -23
  430. agno/cli/entrypoint.py +0 -571
  431. agno/cli/operator.py +0 -357
  432. agno/cli/settings.py +0 -96
  433. agno/cli/ws/ws_cli.py +0 -817
  434. agno/constants.py +0 -13
  435. agno/document/__init__.py +0 -5
  436. agno/document/chunking/semantic.py +0 -45
  437. agno/document/chunking/strategy.py +0 -31
  438. agno/document/reader/__init__.py +0 -5
  439. agno/document/reader/base.py +0 -47
  440. agno/document/reader/docx_reader.py +0 -60
  441. agno/document/reader/gcs/pdf_reader.py +0 -44
  442. agno/document/reader/s3/pdf_reader.py +0 -59
  443. agno/document/reader/s3/text_reader.py +0 -63
  444. agno/document/reader/url_reader.py +0 -59
  445. agno/document/reader/youtube_reader.py +0 -58
  446. agno/embedder/__init__.py +0 -5
  447. agno/embedder/langdb.py +0 -80
  448. agno/embedder/mistral.py +0 -82
  449. agno/embedder/openai.py +0 -78
  450. agno/file/__init__.py +0 -5
  451. agno/file/file.py +0 -16
  452. agno/file/local/csv.py +0 -32
  453. agno/file/local/txt.py +0 -19
  454. agno/infra/app.py +0 -240
  455. agno/infra/base.py +0 -144
  456. agno/infra/context.py +0 -20
  457. agno/infra/db_app.py +0 -52
  458. agno/infra/resource.py +0 -205
  459. agno/infra/resources.py +0 -55
  460. agno/knowledge/agent.py +0 -702
  461. agno/knowledge/arxiv.py +0 -33
  462. agno/knowledge/combined.py +0 -36
  463. agno/knowledge/csv.py +0 -144
  464. agno/knowledge/csv_url.py +0 -124
  465. agno/knowledge/document.py +0 -223
  466. agno/knowledge/docx.py +0 -137
  467. agno/knowledge/firecrawl.py +0 -34
  468. agno/knowledge/gcs/__init__.py +0 -0
  469. agno/knowledge/gcs/base.py +0 -39
  470. agno/knowledge/gcs/pdf.py +0 -125
  471. agno/knowledge/json.py +0 -137
  472. agno/knowledge/langchain.py +0 -71
  473. agno/knowledge/light_rag.py +0 -273
  474. agno/knowledge/llamaindex.py +0 -66
  475. agno/knowledge/markdown.py +0 -154
  476. agno/knowledge/pdf.py +0 -164
  477. agno/knowledge/pdf_bytes.py +0 -42
  478. agno/knowledge/pdf_url.py +0 -148
  479. agno/knowledge/s3/__init__.py +0 -0
  480. agno/knowledge/s3/base.py +0 -64
  481. agno/knowledge/s3/pdf.py +0 -33
  482. agno/knowledge/s3/text.py +0 -34
  483. agno/knowledge/text.py +0 -141
  484. agno/knowledge/url.py +0 -46
  485. agno/knowledge/website.py +0 -179
  486. agno/knowledge/wikipedia.py +0 -32
  487. agno/knowledge/youtube.py +0 -35
  488. agno/memory/agent.py +0 -423
  489. agno/memory/classifier.py +0 -104
  490. agno/memory/db/__init__.py +0 -5
  491. agno/memory/db/base.py +0 -42
  492. agno/memory/db/mongodb.py +0 -189
  493. agno/memory/db/postgres.py +0 -203
  494. agno/memory/db/sqlite.py +0 -193
  495. agno/memory/memory.py +0 -22
  496. agno/memory/row.py +0 -36
  497. agno/memory/summarizer.py +0 -201
  498. agno/memory/summary.py +0 -19
  499. agno/memory/team.py +0 -415
  500. agno/memory/v2/__init__.py +0 -2
  501. agno/memory/v2/db/__init__.py +0 -1
  502. agno/memory/v2/db/base.py +0 -42
  503. agno/memory/v2/db/firestore.py +0 -339
  504. agno/memory/v2/db/mongodb.py +0 -196
  505. agno/memory/v2/db/postgres.py +0 -214
  506. agno/memory/v2/db/redis.py +0 -187
  507. agno/memory/v2/db/schema.py +0 -54
  508. agno/memory/v2/db/sqlite.py +0 -209
  509. agno/memory/v2/manager.py +0 -437
  510. agno/memory/v2/memory.py +0 -1097
  511. agno/memory/v2/schema.py +0 -55
  512. agno/memory/v2/summarizer.py +0 -215
  513. agno/memory/workflow.py +0 -38
  514. agno/models/ollama/tools.py +0 -430
  515. agno/models/qwen/__init__.py +0 -5
  516. agno/playground/__init__.py +0 -10
  517. agno/playground/deploy.py +0 -3
  518. agno/playground/playground.py +0 -3
  519. agno/playground/serve.py +0 -3
  520. agno/playground/settings.py +0 -3
  521. agno/reranker/__init__.py +0 -0
  522. agno/run/response.py +0 -467
  523. agno/run/v2/__init__.py +0 -0
  524. agno/run/v2/workflow.py +0 -567
  525. agno/storage/__init__.py +0 -0
  526. agno/storage/agent/__init__.py +0 -0
  527. agno/storage/agent/dynamodb.py +0 -1
  528. agno/storage/agent/json.py +0 -1
  529. agno/storage/agent/mongodb.py +0 -1
  530. agno/storage/agent/postgres.py +0 -1
  531. agno/storage/agent/singlestore.py +0 -1
  532. agno/storage/agent/sqlite.py +0 -1
  533. agno/storage/agent/yaml.py +0 -1
  534. agno/storage/base.py +0 -60
  535. agno/storage/dynamodb.py +0 -673
  536. agno/storage/firestore.py +0 -297
  537. agno/storage/gcs_json.py +0 -261
  538. agno/storage/in_memory.py +0 -234
  539. agno/storage/json.py +0 -237
  540. agno/storage/mongodb.py +0 -328
  541. agno/storage/mysql.py +0 -685
  542. agno/storage/postgres.py +0 -682
  543. agno/storage/redis.py +0 -336
  544. agno/storage/session/__init__.py +0 -16
  545. agno/storage/session/agent.py +0 -64
  546. agno/storage/session/team.py +0 -63
  547. agno/storage/session/v2/__init__.py +0 -5
  548. agno/storage/session/workflow.py +0 -61
  549. agno/storage/singlestore.py +0 -606
  550. agno/storage/sqlite.py +0 -646
  551. agno/storage/workflow/__init__.py +0 -0
  552. agno/storage/workflow/mongodb.py +0 -1
  553. agno/storage/workflow/postgres.py +0 -1
  554. agno/storage/workflow/sqlite.py +0 -1
  555. agno/storage/yaml.py +0 -241
  556. agno/tools/thinking.py +0 -73
  557. agno/utils/defaults.py +0 -57
  558. agno/utils/filesystem.py +0 -39
  559. agno/utils/git.py +0 -52
  560. agno/utils/json_io.py +0 -30
  561. agno/utils/load_env.py +0 -19
  562. agno/utils/py_io.py +0 -19
  563. agno/utils/pyproject.py +0 -18
  564. agno/utils/resource_filter.py +0 -31
  565. agno/workflow/v2/__init__.py +0 -21
  566. agno/workflow/v2/types.py +0 -357
  567. agno/workflow/v2/workflow.py +0 -3312
  568. agno/workspace/__init__.py +0 -0
  569. agno/workspace/config.py +0 -325
  570. agno/workspace/enums.py +0 -6
  571. agno/workspace/helpers.py +0 -52
  572. agno/workspace/operator.py +0 -757
  573. agno/workspace/settings.py +0 -158
  574. agno-1.8.1.dist-info/METADATA +0 -982
  575. agno-1.8.1.dist-info/RECORD +0 -566
  576. agno-1.8.1.dist-info/entry_points.txt +0 -3
  577. agno-1.8.1.dist-info/licenses/LICENSE +0 -375
  578. /agno/{app → db/migrations}/__init__.py +0 -0
  579. /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
  580. /agno/{cli → integrations}/__init__.py +0 -0
  581. /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
  582. /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
  583. /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
  584. /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
  585. /agno/{app → os/interfaces}/slack/security.py +0 -0
  586. /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
  587. /agno/{file/local → utils/print_response}/__init__.py +0 -0
  588. /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
  589. {agno-1.8.1.dist-info → agno-2.0.0.dist-info}/WHEEL +0 -0
  590. {agno-1.8.1.dist-info → agno-2.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,494 @@
1
+ Metadata-Version: 2.4
2
+ Name: agno
3
+ Version: 2.0.0
4
+ Summary: Agno: a lightweight library for building Multi-Agent Systems
5
+ Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
+ Project-URL: homepage, https://agno.com
7
+ Project-URL: documentation, https://docs.agno.com
8
+ Keywords: agent,reasoning,llm,large-language-model,framework
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.7
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Requires-Python: <4,>=3.7
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: docstring-parser
25
+ Requires-Dist: gitpython
26
+ Requires-Dist: httpx
27
+ Requires-Dist: packaging
28
+ Requires-Dist: pydantic-settings
29
+ Requires-Dist: pydantic
30
+ Requires-Dist: python-dotenv
31
+ Requires-Dist: python-multipart
32
+ Requires-Dist: pyyaml
33
+ Requires-Dist: rich
34
+ Requires-Dist: typer
35
+ Requires-Dist: typing-extensions
36
+ Provides-Extra: dev
37
+ Requires-Dist: mypy; extra == "dev"
38
+ Requires-Dist: pytest; extra == "dev"
39
+ Requires-Dist: pytest-asyncio; extra == "dev"
40
+ Requires-Dist: pytest-cov; extra == "dev"
41
+ Requires-Dist: pytest-mock; extra == "dev"
42
+ Requires-Dist: ruff; extra == "dev"
43
+ Requires-Dist: timeout-decorator; extra == "dev"
44
+ Requires-Dist: types-pyyaml; extra == "dev"
45
+ Requires-Dist: types-aiofiles; extra == "dev"
46
+ Requires-Dist: fastapi; extra == "dev"
47
+ Requires-Dist: uvicorn; extra == "dev"
48
+ Provides-Extra: os
49
+ Requires-Dist: fastapi; extra == "os"
50
+ Requires-Dist: uvicorn; extra == "os"
51
+ Provides-Extra: integration-tests
52
+ Requires-Dist: exa_py; extra == "integration-tests"
53
+ Requires-Dist: ddgs; extra == "integration-tests"
54
+ Requires-Dist: yfinance; extra == "integration-tests"
55
+ Requires-Dist: sqlalchemy; extra == "integration-tests"
56
+ Requires-Dist: Pillow; extra == "integration-tests"
57
+ Provides-Extra: opentelemetry
58
+ Requires-Dist: opentelemetry-sdk; extra == "opentelemetry"
59
+ Requires-Dist: opentelemetry-exporter-otlp; extra == "opentelemetry"
60
+ Provides-Extra: weave
61
+ Requires-Dist: weave; extra == "weave"
62
+ Provides-Extra: openlit
63
+ Requires-Dist: openlit; extra == "openlit"
64
+ Requires-Dist: agno[opentelemetry]; extra == "openlit"
65
+ Provides-Extra: arize
66
+ Requires-Dist: arize-phoenix; extra == "arize"
67
+ Requires-Dist: agno[opentelemetry]; extra == "arize"
68
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc; extra == "arize"
69
+ Requires-Dist: opentelemetry-distro; extra == "arize"
70
+ Provides-Extra: langfuse
71
+ Requires-Dist: langfuse; extra == "langfuse"
72
+ Provides-Extra: aws-bedrock
73
+ Requires-Dist: boto3; extra == "aws-bedrock"
74
+ Requires-Dist: aioboto3; extra == "aws-bedrock"
75
+ Provides-Extra: anthropic
76
+ Requires-Dist: anthropic; extra == "anthropic"
77
+ Provides-Extra: azure
78
+ Requires-Dist: azure-ai-inference; extra == "azure"
79
+ Requires-Dist: aiohttp; extra == "azure"
80
+ Provides-Extra: cerebras
81
+ Requires-Dist: cerebras-cloud-sdk; extra == "cerebras"
82
+ Provides-Extra: cohere
83
+ Requires-Dist: cohere; extra == "cohere"
84
+ Provides-Extra: infinity
85
+ Requires-Dist: infinity_client; extra == "infinity"
86
+ Provides-Extra: google
87
+ Requires-Dist: google-genai; extra == "google"
88
+ Provides-Extra: groq
89
+ Requires-Dist: groq; extra == "groq"
90
+ Provides-Extra: ibm
91
+ Requires-Dist: ibm-watsonx-ai; extra == "ibm"
92
+ Provides-Extra: litellm
93
+ Requires-Dist: litellm; extra == "litellm"
94
+ Provides-Extra: lmstudio
95
+ Requires-Dist: lmstudio; extra == "lmstudio"
96
+ Provides-Extra: meta
97
+ Requires-Dist: llama-api-client; extra == "meta"
98
+ Provides-Extra: mistral
99
+ Requires-Dist: mistralai; extra == "mistral"
100
+ Provides-Extra: ollama
101
+ Requires-Dist: ollama; extra == "ollama"
102
+ Provides-Extra: openai
103
+ Requires-Dist: openai; extra == "openai"
104
+ Provides-Extra: portkey
105
+ Requires-Dist: portkey-ai; extra == "portkey"
106
+ Provides-Extra: agentql
107
+ Requires-Dist: agentql; extra == "agentql"
108
+ Provides-Extra: apify
109
+ Requires-Dist: apify-client; extra == "apify"
110
+ Provides-Extra: arxiv
111
+ Requires-Dist: arxiv; extra == "arxiv"
112
+ Provides-Extra: brave
113
+ Requires-Dist: brave-search; extra == "brave"
114
+ Provides-Extra: browserbase
115
+ Requires-Dist: browserbase; extra == "browserbase"
116
+ Requires-Dist: playwright; extra == "browserbase"
117
+ Provides-Extra: cartesia
118
+ Requires-Dist: cartesia; extra == "cartesia"
119
+ Provides-Extra: confluence
120
+ Requires-Dist: atlassian-python-api; extra == "confluence"
121
+ Provides-Extra: ddg
122
+ Requires-Dist: ddgs; extra == "ddg"
123
+ Provides-Extra: duckdb
124
+ Requires-Dist: duckdb; extra == "duckdb"
125
+ Provides-Extra: elevenlabs
126
+ Requires-Dist: elevenlabs; extra == "elevenlabs"
127
+ Provides-Extra: evm
128
+ Requires-Dist: web3; extra == "evm"
129
+ Provides-Extra: exa
130
+ Requires-Dist: exa_py; extra == "exa"
131
+ Provides-Extra: fal
132
+ Requires-Dist: fal_client; extra == "fal"
133
+ Provides-Extra: firecrawl
134
+ Requires-Dist: firecrawl-py; extra == "firecrawl"
135
+ Provides-Extra: crawl4ai
136
+ Requires-Dist: crawl4ai; extra == "crawl4ai"
137
+ Provides-Extra: github
138
+ Requires-Dist: PyGithub; extra == "github"
139
+ Provides-Extra: gmail
140
+ Requires-Dist: google-api-python-client; extra == "gmail"
141
+ Requires-Dist: google-auth-httplib2; extra == "gmail"
142
+ Requires-Dist: google-auth-oauthlib; extra == "gmail"
143
+ Provides-Extra: google-bigquery
144
+ Requires-Dist: google-cloud-bigquery; extra == "google-bigquery"
145
+ Provides-Extra: googlemaps
146
+ Requires-Dist: googlemaps; extra == "googlemaps"
147
+ Requires-Dist: google-maps-places; extra == "googlemaps"
148
+ Provides-Extra: matplotlib
149
+ Requires-Dist: matplotlib; extra == "matplotlib"
150
+ Provides-Extra: mcp
151
+ Requires-Dist: mcp; extra == "mcp"
152
+ Provides-Extra: mem0
153
+ Requires-Dist: mem0ai; extra == "mem0"
154
+ Provides-Extra: memori
155
+ Requires-Dist: memorisdk; extra == "memori"
156
+ Provides-Extra: newspaper
157
+ Requires-Dist: newspaper4k; extra == "newspaper"
158
+ Requires-Dist: lxml_html_clean; extra == "newspaper"
159
+ Provides-Extra: opencv
160
+ Requires-Dist: opencv-python; extra == "opencv"
161
+ Provides-Extra: psycopg
162
+ Requires-Dist: psycopg-binary; extra == "psycopg"
163
+ Requires-Dist: psycopg; extra == "psycopg"
164
+ Provides-Extra: todoist
165
+ Requires-Dist: todoist-api-python; extra == "todoist"
166
+ Provides-Extra: valyu
167
+ Requires-Dist: valyu; extra == "valyu"
168
+ Provides-Extra: webex
169
+ Requires-Dist: webexpythonsdk; extra == "webex"
170
+ Provides-Extra: yfinance
171
+ Requires-Dist: yfinance; extra == "yfinance"
172
+ Provides-Extra: youtube
173
+ Requires-Dist: youtube_transcript_api; extra == "youtube"
174
+ Provides-Extra: zep
175
+ Requires-Dist: zep-cloud; extra == "zep"
176
+ Provides-Extra: daytona
177
+ Requires-Dist: daytona; extra == "daytona"
178
+ Provides-Extra: oxylabs
179
+ Requires-Dist: oxylabs; extra == "oxylabs"
180
+ Provides-Extra: trafilatura
181
+ Requires-Dist: trafilatura; extra == "trafilatura"
182
+ Provides-Extra: neo4j
183
+ Requires-Dist: neo4j; extra == "neo4j"
184
+ Provides-Extra: sql
185
+ Requires-Dist: sqlalchemy; extra == "sql"
186
+ Provides-Extra: postgres
187
+ Requires-Dist: psycopg-binary; extra == "postgres"
188
+ Provides-Extra: sqlite
189
+ Requires-Dist: sqlalchemy; extra == "sqlite"
190
+ Provides-Extra: gcs
191
+ Requires-Dist: google-cloud-storage; extra == "gcs"
192
+ Provides-Extra: firestore
193
+ Requires-Dist: google-cloud-firestore; extra == "firestore"
194
+ Provides-Extra: redis
195
+ Requires-Dist: redis; extra == "redis"
196
+ Provides-Extra: pgvector
197
+ Requires-Dist: pgvector; extra == "pgvector"
198
+ Provides-Extra: chromadb
199
+ Requires-Dist: chromadb; extra == "chromadb"
200
+ Provides-Extra: lancedb
201
+ Requires-Dist: lancedb>=0.24.0; extra == "lancedb"
202
+ Requires-Dist: tantivy; extra == "lancedb"
203
+ Provides-Extra: pylance
204
+ Requires-Dist: pylance; extra == "pylance"
205
+ Provides-Extra: qdrant
206
+ Requires-Dist: qdrant-client; extra == "qdrant"
207
+ Provides-Extra: couchbase
208
+ Requires-Dist: couchbase; extra == "couchbase"
209
+ Provides-Extra: cassandra
210
+ Requires-Dist: cassio; extra == "cassandra"
211
+ Provides-Extra: mongodb
212
+ Requires-Dist: pymongo[srv]; extra == "mongodb"
213
+ Provides-Extra: singlestore
214
+ Requires-Dist: sqlalchemy; extra == "singlestore"
215
+ Provides-Extra: weaviate
216
+ Requires-Dist: weaviate-client; extra == "weaviate"
217
+ Provides-Extra: milvusdb
218
+ Requires-Dist: pymilvus>=2.5.10; extra == "milvusdb"
219
+ Provides-Extra: clickhouse
220
+ Requires-Dist: clickhouse-connect; extra == "clickhouse"
221
+ Provides-Extra: pinecone
222
+ Requires-Dist: pinecone==5.4.2; extra == "pinecone"
223
+ Provides-Extra: surrealdb
224
+ Requires-Dist: surrealdb>=1.0.4; extra == "surrealdb"
225
+ Provides-Extra: upstash
226
+ Requires-Dist: upstash-vector; extra == "upstash"
227
+ Provides-Extra: pdf
228
+ Requires-Dist: pypdf; extra == "pdf"
229
+ Requires-Dist: rapidocr_onnxruntime; extra == "pdf"
230
+ Provides-Extra: docx
231
+ Requires-Dist: python-docx; extra == "docx"
232
+ Provides-Extra: text
233
+ Requires-Dist: aiofiles; extra == "text"
234
+ Provides-Extra: csv
235
+ Requires-Dist: aiofiles; extra == "csv"
236
+ Provides-Extra: markdown
237
+ Requires-Dist: unstructured; extra == "markdown"
238
+ Requires-Dist: markdown; extra == "markdown"
239
+ Requires-Dist: aiofiles; extra == "markdown"
240
+ Provides-Extra: chonkie
241
+ Requires-Dist: chonkie[st]; extra == "chonkie"
242
+ Requires-Dist: chonkie; extra == "chonkie"
243
+ Provides-Extra: agui
244
+ Requires-Dist: ag-ui-protocol; extra == "agui"
245
+ Provides-Extra: huggingface
246
+ Requires-Dist: huggingface-hub; extra == "huggingface"
247
+ Provides-Extra: performance
248
+ Requires-Dist: memory_profiler; extra == "performance"
249
+ Provides-Extra: cookbooks
250
+ Requires-Dist: inquirer; extra == "cookbooks"
251
+ Requires-Dist: email_validator; extra == "cookbooks"
252
+ Provides-Extra: docker
253
+ Requires-Dist: agno-infra[docker]; extra == "docker"
254
+ Provides-Extra: aws
255
+ Requires-Dist: agno-infra[aws]; extra == "aws"
256
+ Requires-Dist: agno-infra[docker]; extra == "aws"
257
+ Provides-Extra: infra
258
+ Requires-Dist: agno-infra; extra == "infra"
259
+ Provides-Extra: models
260
+ Requires-Dist: agno[aws-bedrock]; extra == "models"
261
+ Requires-Dist: agno[anthropic]; extra == "models"
262
+ Requires-Dist: agno[azure]; extra == "models"
263
+ Requires-Dist: agno[cerebras]; extra == "models"
264
+ Requires-Dist: agno[cohere]; extra == "models"
265
+ Requires-Dist: agno[infinity]; extra == "models"
266
+ Requires-Dist: agno[google]; extra == "models"
267
+ Requires-Dist: agno[groq]; extra == "models"
268
+ Requires-Dist: agno[ibm]; extra == "models"
269
+ Requires-Dist: agno[infinity]; extra == "models"
270
+ Requires-Dist: agno[litellm]; extra == "models"
271
+ Requires-Dist: agno[meta]; extra == "models"
272
+ Requires-Dist: agno[mistral]; extra == "models"
273
+ Requires-Dist: agno[ollama]; extra == "models"
274
+ Requires-Dist: agno[openai]; extra == "models"
275
+ Requires-Dist: agno[portkey]; extra == "models"
276
+ Provides-Extra: tools
277
+ Requires-Dist: agno[apify]; extra == "tools"
278
+ Requires-Dist: agno[arxiv]; extra == "tools"
279
+ Requires-Dist: agno[brave]; extra == "tools"
280
+ Requires-Dist: agno[exa]; extra == "tools"
281
+ Requires-Dist: agno[cartesia]; extra == "tools"
282
+ Requires-Dist: agno[ddg]; extra == "tools"
283
+ Requires-Dist: agno[duckdb]; extra == "tools"
284
+ Requires-Dist: agno[newspaper]; extra == "tools"
285
+ Requires-Dist: agno[youtube]; extra == "tools"
286
+ Requires-Dist: agno[firecrawl]; extra == "tools"
287
+ Requires-Dist: agno[crawl4ai]; extra == "tools"
288
+ Requires-Dist: agno[github]; extra == "tools"
289
+ Requires-Dist: agno[gmail]; extra == "tools"
290
+ Requires-Dist: agno[googlemaps]; extra == "tools"
291
+ Requires-Dist: agno[todoist]; extra == "tools"
292
+ Requires-Dist: agno[matplotlib]; extra == "tools"
293
+ Requires-Dist: agno[elevenlabs]; extra == "tools"
294
+ Requires-Dist: agno[evm]; extra == "tools"
295
+ Requires-Dist: agno[fal]; extra == "tools"
296
+ Requires-Dist: agno[webex]; extra == "tools"
297
+ Requires-Dist: agno[mcp]; extra == "tools"
298
+ Requires-Dist: agno[browserbase]; extra == "tools"
299
+ Requires-Dist: agno[agentql]; extra == "tools"
300
+ Requires-Dist: agno[opencv]; extra == "tools"
301
+ Requires-Dist: agno[valyu]; extra == "tools"
302
+ Requires-Dist: agno[confluence]; extra == "tools"
303
+ Requires-Dist: agno[oxylabs]; extra == "tools"
304
+ Requires-Dist: agno[zep]; extra == "tools"
305
+ Requires-Dist: agno[mem0]; extra == "tools"
306
+ Requires-Dist: agno[memori]; extra == "tools"
307
+ Requires-Dist: agno[google_bigquery]; extra == "tools"
308
+ Requires-Dist: agno[psycopg]; extra == "tools"
309
+ Requires-Dist: agno[trafilatura]; extra == "tools"
310
+ Requires-Dist: agno[neo4j]; extra == "tools"
311
+ Provides-Extra: storage
312
+ Requires-Dist: agno[sql]; extra == "storage"
313
+ Requires-Dist: agno[postgres]; extra == "storage"
314
+ Requires-Dist: agno[sqlite]; extra == "storage"
315
+ Requires-Dist: agno[gcs]; extra == "storage"
316
+ Requires-Dist: agno[firestore]; extra == "storage"
317
+ Requires-Dist: agno[redis]; extra == "storage"
318
+ Provides-Extra: vectordbs
319
+ Requires-Dist: agno[pgvector]; extra == "vectordbs"
320
+ Requires-Dist: agno[chromadb]; extra == "vectordbs"
321
+ Requires-Dist: agno[lancedb]; extra == "vectordbs"
322
+ Requires-Dist: agno[qdrant]; extra == "vectordbs"
323
+ Requires-Dist: agno[couchbase]; extra == "vectordbs"
324
+ Requires-Dist: agno[cassandra]; extra == "vectordbs"
325
+ Requires-Dist: agno[mongodb]; extra == "vectordbs"
326
+ Requires-Dist: agno[singlestore]; extra == "vectordbs"
327
+ Requires-Dist: agno[weaviate]; extra == "vectordbs"
328
+ Requires-Dist: agno[milvusdb]; extra == "vectordbs"
329
+ Requires-Dist: agno[clickhouse]; extra == "vectordbs"
330
+ Requires-Dist: agno[pinecone]; extra == "vectordbs"
331
+ Requires-Dist: agno[surrealdb]; extra == "vectordbs"
332
+ Requires-Dist: agno[upstash]; extra == "vectordbs"
333
+ Provides-Extra: knowledge
334
+ Requires-Dist: agno[pdf]; extra == "knowledge"
335
+ Requires-Dist: agno[docx]; extra == "knowledge"
336
+ Requires-Dist: agno[text]; extra == "knowledge"
337
+ Requires-Dist: agno[csv]; extra == "knowledge"
338
+ Requires-Dist: agno[markdown]; extra == "knowledge"
339
+ Requires-Dist: agno[chonkie]; extra == "knowledge"
340
+ Provides-Extra: embedders
341
+ Requires-Dist: agno[huggingface]; extra == "embedders"
342
+ Provides-Extra: tests
343
+ Requires-Dist: agno[dev]; extra == "tests"
344
+ Requires-Dist: agno[models]; extra == "tests"
345
+ Requires-Dist: agno[tools]; extra == "tests"
346
+ Requires-Dist: agno[storage]; extra == "tests"
347
+ Requires-Dist: agno[vectordbs]; extra == "tests"
348
+ Requires-Dist: agno[knowledge]; extra == "tests"
349
+ Requires-Dist: agno[embedders]; extra == "tests"
350
+ Requires-Dist: agno[performance]; extra == "tests"
351
+ Requires-Dist: agno[cookbooks]; extra == "tests"
352
+ Requires-Dist: agno[agui]; extra == "tests"
353
+ Requires-Dist: twine; extra == "tests"
354
+ Requires-Dist: build; extra == "tests"
355
+ Dynamic: license-file
356
+
357
+ <div align="center" id="top">
358
+ <a href="https://docs.agno.com">
359
+ <picture>
360
+ <source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
361
+ <source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
362
+ <img src="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg" alt="Agno">
363
+ </picture>
364
+ </a>
365
+ </div>
366
+ <div align="center">
367
+ <a href="https://docs.agno.com">📚 Documentation</a> &nbsp;|&nbsp;
368
+ <a href="https://docs.agno.com/examples/introduction">💡 Examples</a> &nbsp;|&nbsp;
369
+ <a href="https://github.com/agno-agi/agno/stargazers">🌟 Star Us</a>
370
+ </div>
371
+
372
+ ## What is Agno?
373
+
374
+ [Agno](https://docs.agno.com) is a high-performance runtime for multi-agent systems. Use it to build, run and manage secure multi-agent systems in your cloud.
375
+
376
+ Agno gives you the fastest framework for building agents with session management, memory, knowledge, human in the loop and MCP support. You can put agents together as an autonomous multi-agent team, or build step-based agentic workflows for full control over complex multi-step processes.
377
+
378
+ In 10 lines of code, we can build an Agent that will fetch the top stories from HackerNews and summarize them.
379
+
380
+ ```python hackernews_agent.py
381
+ from agno.agent import Agent
382
+ from agno.models.anthropic import Claude
383
+ from agno.tools.hackernews import HackerNewsTools
384
+
385
+ agent = Agent(
386
+ model=Claude(id="claude-sonnet-4-0"),
387
+ tools=[HackerNewsTools()],
388
+ markdown=True,
389
+ )
390
+ agent.print_response("Summarize the top 5 stories on hackernews", stream=True)
391
+ ```
392
+
393
+ But the real advantage of Agno is its [AgentOS](https://docs.agno.com/agent-os/introduction) runtime:
394
+
395
+ 1. You get a pre-built FastAPI app for running your agentic system, meaning you start building your product on day one. This is a remarkable advantage over other solutions or rolling your own.
396
+ 2. You also get a control plane which connects directly to your AgentOS for testing, monitoring and managing your system. This gives you unmatched visibility and control over your system.
397
+ 3. Your AgentOS runs in your cloud and you get complete data privacy because no data ever leaves your system. This is incredible for security conscious enterprises that can't send traces to external services.
398
+
399
+ For organizations building agents, Agno provides the complete solution. You get the fastest framework for building agents (speed of development and execution), a pre-built FastAPI app that lets you build your product on day one, and a control plane for managing your system.
400
+
401
+ We bring a novel architecture that no other framework provides, your AgentOS runs securely in your cloud, and the control plane connects directly to it from your browser. You don't need to send data to external services or pay retention costs, you get complete privacy and control.
402
+
403
+ ## Getting started
404
+
405
+ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introduction/quickstart) to build your first Agent and run it using the AgentOS.
406
+
407
+ After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
408
+
409
+ ## Documentation, Community & More examples
410
+
411
+ - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
412
+ - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
413
+ - Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
414
+ - Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
415
+
416
+ ## Setup your coding agent to use Agno
417
+
418
+ For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file.
419
+
420
+ This file is built for AI systems to efficiently parse and reference our documentation.
421
+
422
+ ### IDE Integration
423
+
424
+ When building Agno agents, using Agno documentation as a source in your IDE is a great way to speed up your development. Here's how to integrate with Cursor:
425
+
426
+ 1. In Cursor, go to the "Cursor Settings" menu.
427
+ 2. Find the "Indexing & Docs" section.
428
+ 3. Add `https://docs.agno.com/llms-full.txt` to the list of documentation URLs.
429
+ 4. Save the changes.
430
+
431
+ Now, Cursor will have access to the Agno documentation. You can do the same with other IDEs like VSCode, Windsurf etc.
432
+
433
+ ## Performance
434
+
435
+ At Agno, we're obsessed with performance. Why? because even simple AI workflows can spawn thousands of Agents. Scale that to a modest number of users and performance becomes a bottleneck. Agno is designed for building highly performant agentic systems:
436
+
437
+ - Agent instantiation: ~3μs on average
438
+ - Memory footprint: ~6.5Kib on average
439
+
440
+ > Tested on an Apple M4 Mackbook Pro.
441
+
442
+ While an Agent's run-time is bottlenecked by inference, we must do everything possible to minimize execution time, reduce memory usage, and parallelize tool calls. These numbers may seem trivial at first, but our experience shows that they add up even at a reasonably small scale.
443
+
444
+ ### Instantiation time
445
+
446
+ Let's measure the time it takes for an Agent with 1 tool to start up. We'll run the evaluation 1000 times to get a baseline measurement.
447
+
448
+ You should run the evaluation yourself on your own machine, please, do not take these results at face value.
449
+
450
+ ```shell
451
+ # Setup virtual environment
452
+ ./scripts/perf_setup.sh
453
+ source .venvs/perfenv/bin/activate
454
+ # OR Install dependencies manually
455
+ # pip install openai agno langgraph langchain_openai
456
+
457
+ # Agno
458
+ python evals/performance/instantiation_with_tool.py
459
+
460
+ # LangGraph
461
+ python evals/performance/other/langgraph_instantiation.py
462
+ ```
463
+
464
+ > The following evaluation is run on an Apple M4 Mackbook Pro. It also runs as a Github action on this repo.
465
+
466
+ LangGraph is on the right, **let's start it first and give it a head start**.
467
+
468
+ Agno is on the left, notice how it finishes before LangGraph gets 1/2 way through the runtime measurement, and hasn't even started the memory measurement. That's how fast Agno is.
469
+
470
+ https://github.com/user-attachments/assets/ba466d45-75dd-45ac-917b-0a56c5742e23
471
+
472
+ ### Memory usage
473
+
474
+ To measure memory usage, we use the `tracemalloc` library. We first calculate a baseline memory usage by running an empty function, then run the Agent 1000x times and calculate the difference. This gives a (reasonably) isolated measurement of the memory usage of the Agent.
475
+
476
+ We recommend running the evaluation yourself on your own machine, and digging into the code to see how it works. If we've made a mistake, please let us know.
477
+
478
+ ### Conclusion
479
+
480
+ Agno agents are designed for performance and while we do share some benchmarks against other frameworks, we should be mindful that accuracy and reliability are more important than speed.
481
+
482
+ Given that each framework is different and we won't be able to tune their performance like we do with Agno, for future benchmarks we'll only be comparing against ourselves.
483
+
484
+ ## Contributions
485
+
486
+ We welcome contributions, read our [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md) to get started.
487
+
488
+ ## Telemetry
489
+
490
+ Agno logs which model an agent used so we can prioritize updates to the most popular providers. You can disable this by setting `AGNO_TELEMETRY=false` in your environment.
491
+
492
+ <p align="left">
493
+ <a href="#top">⬆️ Back to Top</a>
494
+ </p>