agno 2.2.13__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 (575) hide show
  1. agno/__init__.py +8 -0
  2. agno/agent/__init__.py +51 -0
  3. agno/agent/agent.py +10405 -0
  4. agno/api/__init__.py +0 -0
  5. agno/api/agent.py +28 -0
  6. agno/api/api.py +40 -0
  7. agno/api/evals.py +22 -0
  8. agno/api/os.py +17 -0
  9. agno/api/routes.py +13 -0
  10. agno/api/schemas/__init__.py +9 -0
  11. agno/api/schemas/agent.py +16 -0
  12. agno/api/schemas/evals.py +16 -0
  13. agno/api/schemas/os.py +14 -0
  14. agno/api/schemas/response.py +6 -0
  15. agno/api/schemas/team.py +16 -0
  16. agno/api/schemas/utils.py +21 -0
  17. agno/api/schemas/workflows.py +16 -0
  18. agno/api/settings.py +53 -0
  19. agno/api/team.py +30 -0
  20. agno/api/workflow.py +28 -0
  21. agno/cloud/aws/base.py +214 -0
  22. agno/cloud/aws/s3/__init__.py +2 -0
  23. agno/cloud/aws/s3/api_client.py +43 -0
  24. agno/cloud/aws/s3/bucket.py +195 -0
  25. agno/cloud/aws/s3/object.py +57 -0
  26. agno/culture/__init__.py +3 -0
  27. agno/culture/manager.py +956 -0
  28. agno/db/__init__.py +24 -0
  29. agno/db/async_postgres/__init__.py +3 -0
  30. agno/db/base.py +598 -0
  31. agno/db/dynamo/__init__.py +3 -0
  32. agno/db/dynamo/dynamo.py +2042 -0
  33. agno/db/dynamo/schemas.py +314 -0
  34. agno/db/dynamo/utils.py +743 -0
  35. agno/db/firestore/__init__.py +3 -0
  36. agno/db/firestore/firestore.py +1795 -0
  37. agno/db/firestore/schemas.py +140 -0
  38. agno/db/firestore/utils.py +376 -0
  39. agno/db/gcs_json/__init__.py +3 -0
  40. agno/db/gcs_json/gcs_json_db.py +1335 -0
  41. agno/db/gcs_json/utils.py +228 -0
  42. agno/db/in_memory/__init__.py +3 -0
  43. agno/db/in_memory/in_memory_db.py +1160 -0
  44. agno/db/in_memory/utils.py +230 -0
  45. agno/db/json/__init__.py +3 -0
  46. agno/db/json/json_db.py +1328 -0
  47. agno/db/json/utils.py +230 -0
  48. agno/db/migrations/__init__.py +0 -0
  49. agno/db/migrations/v1_to_v2.py +635 -0
  50. agno/db/mongo/__init__.py +17 -0
  51. agno/db/mongo/async_mongo.py +2026 -0
  52. agno/db/mongo/mongo.py +1982 -0
  53. agno/db/mongo/schemas.py +87 -0
  54. agno/db/mongo/utils.py +259 -0
  55. agno/db/mysql/__init__.py +3 -0
  56. agno/db/mysql/mysql.py +2308 -0
  57. agno/db/mysql/schemas.py +138 -0
  58. agno/db/mysql/utils.py +355 -0
  59. agno/db/postgres/__init__.py +4 -0
  60. agno/db/postgres/async_postgres.py +1927 -0
  61. agno/db/postgres/postgres.py +2260 -0
  62. agno/db/postgres/schemas.py +139 -0
  63. agno/db/postgres/utils.py +442 -0
  64. agno/db/redis/__init__.py +3 -0
  65. agno/db/redis/redis.py +1660 -0
  66. agno/db/redis/schemas.py +123 -0
  67. agno/db/redis/utils.py +346 -0
  68. agno/db/schemas/__init__.py +4 -0
  69. agno/db/schemas/culture.py +120 -0
  70. agno/db/schemas/evals.py +33 -0
  71. agno/db/schemas/knowledge.py +40 -0
  72. agno/db/schemas/memory.py +46 -0
  73. agno/db/schemas/metrics.py +0 -0
  74. agno/db/singlestore/__init__.py +3 -0
  75. agno/db/singlestore/schemas.py +130 -0
  76. agno/db/singlestore/singlestore.py +2272 -0
  77. agno/db/singlestore/utils.py +384 -0
  78. agno/db/sqlite/__init__.py +4 -0
  79. agno/db/sqlite/async_sqlite.py +2293 -0
  80. agno/db/sqlite/schemas.py +133 -0
  81. agno/db/sqlite/sqlite.py +2288 -0
  82. agno/db/sqlite/utils.py +431 -0
  83. agno/db/surrealdb/__init__.py +3 -0
  84. agno/db/surrealdb/metrics.py +292 -0
  85. agno/db/surrealdb/models.py +309 -0
  86. agno/db/surrealdb/queries.py +71 -0
  87. agno/db/surrealdb/surrealdb.py +1353 -0
  88. agno/db/surrealdb/utils.py +147 -0
  89. agno/db/utils.py +116 -0
  90. agno/debug.py +18 -0
  91. agno/eval/__init__.py +14 -0
  92. agno/eval/accuracy.py +834 -0
  93. agno/eval/performance.py +773 -0
  94. agno/eval/reliability.py +306 -0
  95. agno/eval/utils.py +119 -0
  96. agno/exceptions.py +161 -0
  97. agno/filters.py +354 -0
  98. agno/guardrails/__init__.py +6 -0
  99. agno/guardrails/base.py +19 -0
  100. agno/guardrails/openai.py +144 -0
  101. agno/guardrails/pii.py +94 -0
  102. agno/guardrails/prompt_injection.py +52 -0
  103. agno/integrations/__init__.py +0 -0
  104. agno/integrations/discord/__init__.py +3 -0
  105. agno/integrations/discord/client.py +203 -0
  106. agno/knowledge/__init__.py +5 -0
  107. agno/knowledge/chunking/__init__.py +0 -0
  108. agno/knowledge/chunking/agentic.py +79 -0
  109. agno/knowledge/chunking/document.py +91 -0
  110. agno/knowledge/chunking/fixed.py +57 -0
  111. agno/knowledge/chunking/markdown.py +151 -0
  112. agno/knowledge/chunking/recursive.py +63 -0
  113. agno/knowledge/chunking/row.py +39 -0
  114. agno/knowledge/chunking/semantic.py +86 -0
  115. agno/knowledge/chunking/strategy.py +165 -0
  116. agno/knowledge/content.py +74 -0
  117. agno/knowledge/document/__init__.py +5 -0
  118. agno/knowledge/document/base.py +58 -0
  119. agno/knowledge/embedder/__init__.py +5 -0
  120. agno/knowledge/embedder/aws_bedrock.py +343 -0
  121. agno/knowledge/embedder/azure_openai.py +210 -0
  122. agno/knowledge/embedder/base.py +23 -0
  123. agno/knowledge/embedder/cohere.py +323 -0
  124. agno/knowledge/embedder/fastembed.py +62 -0
  125. agno/knowledge/embedder/fireworks.py +13 -0
  126. agno/knowledge/embedder/google.py +258 -0
  127. agno/knowledge/embedder/huggingface.py +94 -0
  128. agno/knowledge/embedder/jina.py +182 -0
  129. agno/knowledge/embedder/langdb.py +22 -0
  130. agno/knowledge/embedder/mistral.py +206 -0
  131. agno/knowledge/embedder/nebius.py +13 -0
  132. agno/knowledge/embedder/ollama.py +154 -0
  133. agno/knowledge/embedder/openai.py +195 -0
  134. agno/knowledge/embedder/sentence_transformer.py +63 -0
  135. agno/knowledge/embedder/together.py +13 -0
  136. agno/knowledge/embedder/vllm.py +262 -0
  137. agno/knowledge/embedder/voyageai.py +165 -0
  138. agno/knowledge/knowledge.py +1988 -0
  139. agno/knowledge/reader/__init__.py +7 -0
  140. agno/knowledge/reader/arxiv_reader.py +81 -0
  141. agno/knowledge/reader/base.py +95 -0
  142. agno/knowledge/reader/csv_reader.py +166 -0
  143. agno/knowledge/reader/docx_reader.py +82 -0
  144. agno/knowledge/reader/field_labeled_csv_reader.py +292 -0
  145. agno/knowledge/reader/firecrawl_reader.py +201 -0
  146. agno/knowledge/reader/json_reader.py +87 -0
  147. agno/knowledge/reader/markdown_reader.py +137 -0
  148. agno/knowledge/reader/pdf_reader.py +431 -0
  149. agno/knowledge/reader/pptx_reader.py +101 -0
  150. agno/knowledge/reader/reader_factory.py +313 -0
  151. agno/knowledge/reader/s3_reader.py +89 -0
  152. agno/knowledge/reader/tavily_reader.py +194 -0
  153. agno/knowledge/reader/text_reader.py +115 -0
  154. agno/knowledge/reader/web_search_reader.py +372 -0
  155. agno/knowledge/reader/website_reader.py +455 -0
  156. agno/knowledge/reader/wikipedia_reader.py +59 -0
  157. agno/knowledge/reader/youtube_reader.py +78 -0
  158. agno/knowledge/remote_content/__init__.py +0 -0
  159. agno/knowledge/remote_content/remote_content.py +88 -0
  160. agno/knowledge/reranker/__init__.py +3 -0
  161. agno/knowledge/reranker/base.py +14 -0
  162. agno/knowledge/reranker/cohere.py +64 -0
  163. agno/knowledge/reranker/infinity.py +195 -0
  164. agno/knowledge/reranker/sentence_transformer.py +54 -0
  165. agno/knowledge/types.py +39 -0
  166. agno/knowledge/utils.py +189 -0
  167. agno/media.py +462 -0
  168. agno/memory/__init__.py +3 -0
  169. agno/memory/manager.py +1327 -0
  170. agno/models/__init__.py +0 -0
  171. agno/models/aimlapi/__init__.py +5 -0
  172. agno/models/aimlapi/aimlapi.py +45 -0
  173. agno/models/anthropic/__init__.py +5 -0
  174. agno/models/anthropic/claude.py +757 -0
  175. agno/models/aws/__init__.py +15 -0
  176. agno/models/aws/bedrock.py +701 -0
  177. agno/models/aws/claude.py +378 -0
  178. agno/models/azure/__init__.py +18 -0
  179. agno/models/azure/ai_foundry.py +485 -0
  180. agno/models/azure/openai_chat.py +131 -0
  181. agno/models/base.py +2175 -0
  182. agno/models/cerebras/__init__.py +12 -0
  183. agno/models/cerebras/cerebras.py +501 -0
  184. agno/models/cerebras/cerebras_openai.py +112 -0
  185. agno/models/cohere/__init__.py +5 -0
  186. agno/models/cohere/chat.py +389 -0
  187. agno/models/cometapi/__init__.py +5 -0
  188. agno/models/cometapi/cometapi.py +57 -0
  189. agno/models/dashscope/__init__.py +5 -0
  190. agno/models/dashscope/dashscope.py +91 -0
  191. agno/models/deepinfra/__init__.py +5 -0
  192. agno/models/deepinfra/deepinfra.py +28 -0
  193. agno/models/deepseek/__init__.py +5 -0
  194. agno/models/deepseek/deepseek.py +61 -0
  195. agno/models/defaults.py +1 -0
  196. agno/models/fireworks/__init__.py +5 -0
  197. agno/models/fireworks/fireworks.py +26 -0
  198. agno/models/google/__init__.py +5 -0
  199. agno/models/google/gemini.py +1085 -0
  200. agno/models/groq/__init__.py +5 -0
  201. agno/models/groq/groq.py +556 -0
  202. agno/models/huggingface/__init__.py +5 -0
  203. agno/models/huggingface/huggingface.py +491 -0
  204. agno/models/ibm/__init__.py +5 -0
  205. agno/models/ibm/watsonx.py +422 -0
  206. agno/models/internlm/__init__.py +3 -0
  207. agno/models/internlm/internlm.py +26 -0
  208. agno/models/langdb/__init__.py +1 -0
  209. agno/models/langdb/langdb.py +48 -0
  210. agno/models/litellm/__init__.py +14 -0
  211. agno/models/litellm/chat.py +468 -0
  212. agno/models/litellm/litellm_openai.py +25 -0
  213. agno/models/llama_cpp/__init__.py +5 -0
  214. agno/models/llama_cpp/llama_cpp.py +22 -0
  215. agno/models/lmstudio/__init__.py +5 -0
  216. agno/models/lmstudio/lmstudio.py +25 -0
  217. agno/models/message.py +434 -0
  218. agno/models/meta/__init__.py +12 -0
  219. agno/models/meta/llama.py +475 -0
  220. agno/models/meta/llama_openai.py +78 -0
  221. agno/models/metrics.py +120 -0
  222. agno/models/mistral/__init__.py +5 -0
  223. agno/models/mistral/mistral.py +432 -0
  224. agno/models/nebius/__init__.py +3 -0
  225. agno/models/nebius/nebius.py +54 -0
  226. agno/models/nexus/__init__.py +3 -0
  227. agno/models/nexus/nexus.py +22 -0
  228. agno/models/nvidia/__init__.py +5 -0
  229. agno/models/nvidia/nvidia.py +28 -0
  230. agno/models/ollama/__init__.py +5 -0
  231. agno/models/ollama/chat.py +441 -0
  232. agno/models/openai/__init__.py +9 -0
  233. agno/models/openai/chat.py +883 -0
  234. agno/models/openai/like.py +27 -0
  235. agno/models/openai/responses.py +1050 -0
  236. agno/models/openrouter/__init__.py +5 -0
  237. agno/models/openrouter/openrouter.py +66 -0
  238. agno/models/perplexity/__init__.py +5 -0
  239. agno/models/perplexity/perplexity.py +187 -0
  240. agno/models/portkey/__init__.py +3 -0
  241. agno/models/portkey/portkey.py +81 -0
  242. agno/models/requesty/__init__.py +5 -0
  243. agno/models/requesty/requesty.py +52 -0
  244. agno/models/response.py +199 -0
  245. agno/models/sambanova/__init__.py +5 -0
  246. agno/models/sambanova/sambanova.py +28 -0
  247. agno/models/siliconflow/__init__.py +5 -0
  248. agno/models/siliconflow/siliconflow.py +25 -0
  249. agno/models/together/__init__.py +5 -0
  250. agno/models/together/together.py +25 -0
  251. agno/models/utils.py +266 -0
  252. agno/models/vercel/__init__.py +3 -0
  253. agno/models/vercel/v0.py +26 -0
  254. agno/models/vertexai/__init__.py +0 -0
  255. agno/models/vertexai/claude.py +70 -0
  256. agno/models/vllm/__init__.py +3 -0
  257. agno/models/vllm/vllm.py +78 -0
  258. agno/models/xai/__init__.py +3 -0
  259. agno/models/xai/xai.py +113 -0
  260. agno/os/__init__.py +3 -0
  261. agno/os/app.py +876 -0
  262. agno/os/auth.py +57 -0
  263. agno/os/config.py +104 -0
  264. agno/os/interfaces/__init__.py +1 -0
  265. agno/os/interfaces/a2a/__init__.py +3 -0
  266. agno/os/interfaces/a2a/a2a.py +42 -0
  267. agno/os/interfaces/a2a/router.py +250 -0
  268. agno/os/interfaces/a2a/utils.py +924 -0
  269. agno/os/interfaces/agui/__init__.py +3 -0
  270. agno/os/interfaces/agui/agui.py +47 -0
  271. agno/os/interfaces/agui/router.py +144 -0
  272. agno/os/interfaces/agui/utils.py +534 -0
  273. agno/os/interfaces/base.py +25 -0
  274. agno/os/interfaces/slack/__init__.py +3 -0
  275. agno/os/interfaces/slack/router.py +148 -0
  276. agno/os/interfaces/slack/security.py +30 -0
  277. agno/os/interfaces/slack/slack.py +47 -0
  278. agno/os/interfaces/whatsapp/__init__.py +3 -0
  279. agno/os/interfaces/whatsapp/router.py +211 -0
  280. agno/os/interfaces/whatsapp/security.py +53 -0
  281. agno/os/interfaces/whatsapp/whatsapp.py +36 -0
  282. agno/os/mcp.py +292 -0
  283. agno/os/middleware/__init__.py +7 -0
  284. agno/os/middleware/jwt.py +233 -0
  285. agno/os/router.py +1763 -0
  286. agno/os/routers/__init__.py +3 -0
  287. agno/os/routers/evals/__init__.py +3 -0
  288. agno/os/routers/evals/evals.py +430 -0
  289. agno/os/routers/evals/schemas.py +142 -0
  290. agno/os/routers/evals/utils.py +162 -0
  291. agno/os/routers/health.py +31 -0
  292. agno/os/routers/home.py +52 -0
  293. agno/os/routers/knowledge/__init__.py +3 -0
  294. agno/os/routers/knowledge/knowledge.py +997 -0
  295. agno/os/routers/knowledge/schemas.py +178 -0
  296. agno/os/routers/memory/__init__.py +3 -0
  297. agno/os/routers/memory/memory.py +515 -0
  298. agno/os/routers/memory/schemas.py +62 -0
  299. agno/os/routers/metrics/__init__.py +3 -0
  300. agno/os/routers/metrics/metrics.py +190 -0
  301. agno/os/routers/metrics/schemas.py +47 -0
  302. agno/os/routers/session/__init__.py +3 -0
  303. agno/os/routers/session/session.py +997 -0
  304. agno/os/schema.py +1055 -0
  305. agno/os/settings.py +43 -0
  306. agno/os/utils.py +630 -0
  307. agno/py.typed +0 -0
  308. agno/reasoning/__init__.py +0 -0
  309. agno/reasoning/anthropic.py +80 -0
  310. agno/reasoning/azure_ai_foundry.py +67 -0
  311. agno/reasoning/deepseek.py +63 -0
  312. agno/reasoning/default.py +97 -0
  313. agno/reasoning/gemini.py +73 -0
  314. agno/reasoning/groq.py +71 -0
  315. agno/reasoning/helpers.py +63 -0
  316. agno/reasoning/ollama.py +67 -0
  317. agno/reasoning/openai.py +86 -0
  318. agno/reasoning/step.py +31 -0
  319. agno/reasoning/vertexai.py +76 -0
  320. agno/run/__init__.py +6 -0
  321. agno/run/agent.py +787 -0
  322. agno/run/base.py +229 -0
  323. agno/run/cancel.py +81 -0
  324. agno/run/messages.py +32 -0
  325. agno/run/team.py +753 -0
  326. agno/run/workflow.py +708 -0
  327. agno/session/__init__.py +10 -0
  328. agno/session/agent.py +295 -0
  329. agno/session/summary.py +265 -0
  330. agno/session/team.py +392 -0
  331. agno/session/workflow.py +205 -0
  332. agno/team/__init__.py +37 -0
  333. agno/team/team.py +8793 -0
  334. agno/tools/__init__.py +10 -0
  335. agno/tools/agentql.py +120 -0
  336. agno/tools/airflow.py +69 -0
  337. agno/tools/api.py +122 -0
  338. agno/tools/apify.py +314 -0
  339. agno/tools/arxiv.py +127 -0
  340. agno/tools/aws_lambda.py +53 -0
  341. agno/tools/aws_ses.py +66 -0
  342. agno/tools/baidusearch.py +89 -0
  343. agno/tools/bitbucket.py +292 -0
  344. agno/tools/brandfetch.py +213 -0
  345. agno/tools/bravesearch.py +106 -0
  346. agno/tools/brightdata.py +367 -0
  347. agno/tools/browserbase.py +209 -0
  348. agno/tools/calcom.py +255 -0
  349. agno/tools/calculator.py +151 -0
  350. agno/tools/cartesia.py +187 -0
  351. agno/tools/clickup.py +244 -0
  352. agno/tools/confluence.py +240 -0
  353. agno/tools/crawl4ai.py +158 -0
  354. agno/tools/csv_toolkit.py +185 -0
  355. agno/tools/dalle.py +110 -0
  356. agno/tools/daytona.py +475 -0
  357. agno/tools/decorator.py +262 -0
  358. agno/tools/desi_vocal.py +108 -0
  359. agno/tools/discord.py +161 -0
  360. agno/tools/docker.py +716 -0
  361. agno/tools/duckdb.py +379 -0
  362. agno/tools/duckduckgo.py +91 -0
  363. agno/tools/e2b.py +703 -0
  364. agno/tools/eleven_labs.py +196 -0
  365. agno/tools/email.py +67 -0
  366. agno/tools/evm.py +129 -0
  367. agno/tools/exa.py +396 -0
  368. agno/tools/fal.py +127 -0
  369. agno/tools/file.py +240 -0
  370. agno/tools/file_generation.py +350 -0
  371. agno/tools/financial_datasets.py +288 -0
  372. agno/tools/firecrawl.py +143 -0
  373. agno/tools/function.py +1187 -0
  374. agno/tools/giphy.py +93 -0
  375. agno/tools/github.py +1760 -0
  376. agno/tools/gmail.py +922 -0
  377. agno/tools/google_bigquery.py +117 -0
  378. agno/tools/google_drive.py +270 -0
  379. agno/tools/google_maps.py +253 -0
  380. agno/tools/googlecalendar.py +674 -0
  381. agno/tools/googlesearch.py +98 -0
  382. agno/tools/googlesheets.py +377 -0
  383. agno/tools/hackernews.py +77 -0
  384. agno/tools/jina.py +101 -0
  385. agno/tools/jira.py +170 -0
  386. agno/tools/knowledge.py +218 -0
  387. agno/tools/linear.py +426 -0
  388. agno/tools/linkup.py +58 -0
  389. agno/tools/local_file_system.py +90 -0
  390. agno/tools/lumalab.py +183 -0
  391. agno/tools/mcp/__init__.py +10 -0
  392. agno/tools/mcp/mcp.py +331 -0
  393. agno/tools/mcp/multi_mcp.py +347 -0
  394. agno/tools/mcp/params.py +24 -0
  395. agno/tools/mcp_toolbox.py +284 -0
  396. agno/tools/mem0.py +193 -0
  397. agno/tools/memori.py +339 -0
  398. agno/tools/memory.py +419 -0
  399. agno/tools/mlx_transcribe.py +139 -0
  400. agno/tools/models/__init__.py +0 -0
  401. agno/tools/models/azure_openai.py +190 -0
  402. agno/tools/models/gemini.py +203 -0
  403. agno/tools/models/groq.py +158 -0
  404. agno/tools/models/morph.py +186 -0
  405. agno/tools/models/nebius.py +124 -0
  406. agno/tools/models_labs.py +195 -0
  407. agno/tools/moviepy_video.py +349 -0
  408. agno/tools/neo4j.py +134 -0
  409. agno/tools/newspaper.py +46 -0
  410. agno/tools/newspaper4k.py +93 -0
  411. agno/tools/notion.py +204 -0
  412. agno/tools/openai.py +202 -0
  413. agno/tools/openbb.py +160 -0
  414. agno/tools/opencv.py +321 -0
  415. agno/tools/openweather.py +233 -0
  416. agno/tools/oxylabs.py +385 -0
  417. agno/tools/pandas.py +102 -0
  418. agno/tools/parallel.py +314 -0
  419. agno/tools/postgres.py +257 -0
  420. agno/tools/pubmed.py +188 -0
  421. agno/tools/python.py +205 -0
  422. agno/tools/reasoning.py +283 -0
  423. agno/tools/reddit.py +467 -0
  424. agno/tools/replicate.py +117 -0
  425. agno/tools/resend.py +62 -0
  426. agno/tools/scrapegraph.py +222 -0
  427. agno/tools/searxng.py +152 -0
  428. agno/tools/serpapi.py +116 -0
  429. agno/tools/serper.py +255 -0
  430. agno/tools/shell.py +53 -0
  431. agno/tools/slack.py +136 -0
  432. agno/tools/sleep.py +20 -0
  433. agno/tools/spider.py +116 -0
  434. agno/tools/sql.py +154 -0
  435. agno/tools/streamlit/__init__.py +0 -0
  436. agno/tools/streamlit/components.py +113 -0
  437. agno/tools/tavily.py +254 -0
  438. agno/tools/telegram.py +48 -0
  439. agno/tools/todoist.py +218 -0
  440. agno/tools/tool_registry.py +1 -0
  441. agno/tools/toolkit.py +146 -0
  442. agno/tools/trafilatura.py +388 -0
  443. agno/tools/trello.py +274 -0
  444. agno/tools/twilio.py +186 -0
  445. agno/tools/user_control_flow.py +78 -0
  446. agno/tools/valyu.py +228 -0
  447. agno/tools/visualization.py +467 -0
  448. agno/tools/webbrowser.py +28 -0
  449. agno/tools/webex.py +76 -0
  450. agno/tools/website.py +54 -0
  451. agno/tools/webtools.py +45 -0
  452. agno/tools/whatsapp.py +286 -0
  453. agno/tools/wikipedia.py +63 -0
  454. agno/tools/workflow.py +278 -0
  455. agno/tools/x.py +335 -0
  456. agno/tools/yfinance.py +257 -0
  457. agno/tools/youtube.py +184 -0
  458. agno/tools/zendesk.py +82 -0
  459. agno/tools/zep.py +454 -0
  460. agno/tools/zoom.py +382 -0
  461. agno/utils/__init__.py +0 -0
  462. agno/utils/agent.py +820 -0
  463. agno/utils/audio.py +49 -0
  464. agno/utils/certs.py +27 -0
  465. agno/utils/code_execution.py +11 -0
  466. agno/utils/common.py +132 -0
  467. agno/utils/dttm.py +13 -0
  468. agno/utils/enum.py +22 -0
  469. agno/utils/env.py +11 -0
  470. agno/utils/events.py +696 -0
  471. agno/utils/format_str.py +16 -0
  472. agno/utils/functions.py +166 -0
  473. agno/utils/gemini.py +426 -0
  474. agno/utils/hooks.py +57 -0
  475. agno/utils/http.py +74 -0
  476. agno/utils/json_schema.py +234 -0
  477. agno/utils/knowledge.py +36 -0
  478. agno/utils/location.py +19 -0
  479. agno/utils/log.py +255 -0
  480. agno/utils/mcp.py +214 -0
  481. agno/utils/media.py +352 -0
  482. agno/utils/merge_dict.py +41 -0
  483. agno/utils/message.py +118 -0
  484. agno/utils/models/__init__.py +0 -0
  485. agno/utils/models/ai_foundry.py +43 -0
  486. agno/utils/models/claude.py +358 -0
  487. agno/utils/models/cohere.py +87 -0
  488. agno/utils/models/llama.py +78 -0
  489. agno/utils/models/mistral.py +98 -0
  490. agno/utils/models/openai_responses.py +140 -0
  491. agno/utils/models/schema_utils.py +153 -0
  492. agno/utils/models/watsonx.py +41 -0
  493. agno/utils/openai.py +257 -0
  494. agno/utils/pickle.py +32 -0
  495. agno/utils/pprint.py +178 -0
  496. agno/utils/print_response/__init__.py +0 -0
  497. agno/utils/print_response/agent.py +842 -0
  498. agno/utils/print_response/team.py +1724 -0
  499. agno/utils/print_response/workflow.py +1668 -0
  500. agno/utils/prompts.py +111 -0
  501. agno/utils/reasoning.py +108 -0
  502. agno/utils/response.py +163 -0
  503. agno/utils/response_iterator.py +17 -0
  504. agno/utils/safe_formatter.py +24 -0
  505. agno/utils/serialize.py +32 -0
  506. agno/utils/shell.py +22 -0
  507. agno/utils/streamlit.py +487 -0
  508. agno/utils/string.py +231 -0
  509. agno/utils/team.py +139 -0
  510. agno/utils/timer.py +41 -0
  511. agno/utils/tools.py +102 -0
  512. agno/utils/web.py +23 -0
  513. agno/utils/whatsapp.py +305 -0
  514. agno/utils/yaml_io.py +25 -0
  515. agno/vectordb/__init__.py +3 -0
  516. agno/vectordb/base.py +127 -0
  517. agno/vectordb/cassandra/__init__.py +5 -0
  518. agno/vectordb/cassandra/cassandra.py +501 -0
  519. agno/vectordb/cassandra/extra_param_mixin.py +11 -0
  520. agno/vectordb/cassandra/index.py +13 -0
  521. agno/vectordb/chroma/__init__.py +5 -0
  522. agno/vectordb/chroma/chromadb.py +929 -0
  523. agno/vectordb/clickhouse/__init__.py +9 -0
  524. agno/vectordb/clickhouse/clickhousedb.py +835 -0
  525. agno/vectordb/clickhouse/index.py +9 -0
  526. agno/vectordb/couchbase/__init__.py +3 -0
  527. agno/vectordb/couchbase/couchbase.py +1442 -0
  528. agno/vectordb/distance.py +7 -0
  529. agno/vectordb/lancedb/__init__.py +6 -0
  530. agno/vectordb/lancedb/lance_db.py +995 -0
  531. agno/vectordb/langchaindb/__init__.py +5 -0
  532. agno/vectordb/langchaindb/langchaindb.py +163 -0
  533. agno/vectordb/lightrag/__init__.py +5 -0
  534. agno/vectordb/lightrag/lightrag.py +388 -0
  535. agno/vectordb/llamaindex/__init__.py +3 -0
  536. agno/vectordb/llamaindex/llamaindexdb.py +166 -0
  537. agno/vectordb/milvus/__init__.py +4 -0
  538. agno/vectordb/milvus/milvus.py +1182 -0
  539. agno/vectordb/mongodb/__init__.py +9 -0
  540. agno/vectordb/mongodb/mongodb.py +1417 -0
  541. agno/vectordb/pgvector/__init__.py +12 -0
  542. agno/vectordb/pgvector/index.py +23 -0
  543. agno/vectordb/pgvector/pgvector.py +1462 -0
  544. agno/vectordb/pineconedb/__init__.py +5 -0
  545. agno/vectordb/pineconedb/pineconedb.py +747 -0
  546. agno/vectordb/qdrant/__init__.py +5 -0
  547. agno/vectordb/qdrant/qdrant.py +1134 -0
  548. agno/vectordb/redis/__init__.py +9 -0
  549. agno/vectordb/redis/redisdb.py +694 -0
  550. agno/vectordb/search.py +7 -0
  551. agno/vectordb/singlestore/__init__.py +10 -0
  552. agno/vectordb/singlestore/index.py +41 -0
  553. agno/vectordb/singlestore/singlestore.py +763 -0
  554. agno/vectordb/surrealdb/__init__.py +3 -0
  555. agno/vectordb/surrealdb/surrealdb.py +699 -0
  556. agno/vectordb/upstashdb/__init__.py +5 -0
  557. agno/vectordb/upstashdb/upstashdb.py +718 -0
  558. agno/vectordb/weaviate/__init__.py +8 -0
  559. agno/vectordb/weaviate/index.py +15 -0
  560. agno/vectordb/weaviate/weaviate.py +1005 -0
  561. agno/workflow/__init__.py +23 -0
  562. agno/workflow/agent.py +299 -0
  563. agno/workflow/condition.py +738 -0
  564. agno/workflow/loop.py +735 -0
  565. agno/workflow/parallel.py +824 -0
  566. agno/workflow/router.py +702 -0
  567. agno/workflow/step.py +1432 -0
  568. agno/workflow/steps.py +592 -0
  569. agno/workflow/types.py +520 -0
  570. agno/workflow/workflow.py +4321 -0
  571. agno-2.2.13.dist-info/METADATA +614 -0
  572. agno-2.2.13.dist-info/RECORD +575 -0
  573. agno-2.2.13.dist-info/WHEEL +5 -0
  574. agno-2.2.13.dist-info/licenses/LICENSE +201 -0
  575. agno-2.2.13.dist-info/top_level.txt +1 -0
@@ -0,0 +1,614 @@
1
+ Metadata-Version: 2.4
2
+ Name: agno
3
+ Version: 2.2.13
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: h11>=0.16.0
27
+ Requires-Dist: httpx
28
+ Requires-Dist: packaging
29
+ Requires-Dist: pydantic-settings
30
+ Requires-Dist: pydantic
31
+ Requires-Dist: python-dotenv
32
+ Requires-Dist: python-multipart
33
+ Requires-Dist: pyyaml
34
+ Requires-Dist: rich
35
+ Requires-Dist: typer
36
+ Requires-Dist: typing-extensions
37
+ Provides-Extra: dev
38
+ Requires-Dist: mypy==1.18.2; extra == "dev"
39
+ Requires-Dist: ruff==0.14.3; extra == "dev"
40
+ Requires-Dist: pytest; extra == "dev"
41
+ Requires-Dist: pytest-asyncio; extra == "dev"
42
+ Requires-Dist: pytest-cov; extra == "dev"
43
+ Requires-Dist: pytest-mock; extra == "dev"
44
+ Requires-Dist: timeout-decorator; extra == "dev"
45
+ Requires-Dist: types-pyyaml; extra == "dev"
46
+ Requires-Dist: types-aiofiles; extra == "dev"
47
+ Requires-Dist: fastapi; extra == "dev"
48
+ Requires-Dist: uvicorn; extra == "dev"
49
+ Provides-Extra: os
50
+ Requires-Dist: fastapi; extra == "os"
51
+ Requires-Dist: uvicorn; extra == "os"
52
+ Requires-Dist: PyJWT; extra == "os"
53
+ Provides-Extra: integration-tests
54
+ Requires-Dist: exa_py; extra == "integration-tests"
55
+ Requires-Dist: ddgs; extra == "integration-tests"
56
+ Requires-Dist: yfinance; extra == "integration-tests"
57
+ Requires-Dist: sqlalchemy; extra == "integration-tests"
58
+ Requires-Dist: Pillow; extra == "integration-tests"
59
+ Requires-Dist: fastmcp; extra == "integration-tests"
60
+ Provides-Extra: opentelemetry
61
+ Requires-Dist: opentelemetry-sdk; extra == "opentelemetry"
62
+ Requires-Dist: opentelemetry-exporter-otlp; extra == "opentelemetry"
63
+ Provides-Extra: weave
64
+ Requires-Dist: weave; extra == "weave"
65
+ Provides-Extra: openlit
66
+ Requires-Dist: openlit; extra == "openlit"
67
+ Requires-Dist: agno[opentelemetry]; extra == "openlit"
68
+ Provides-Extra: arize
69
+ Requires-Dist: arize-phoenix; extra == "arize"
70
+ Requires-Dist: agno[opentelemetry]; extra == "arize"
71
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc; extra == "arize"
72
+ Requires-Dist: opentelemetry-distro; extra == "arize"
73
+ Provides-Extra: langfuse
74
+ Requires-Dist: langfuse; extra == "langfuse"
75
+ Provides-Extra: aws-bedrock
76
+ Requires-Dist: boto3; extra == "aws-bedrock"
77
+ Requires-Dist: aioboto3; extra == "aws-bedrock"
78
+ Provides-Extra: anthropic
79
+ Requires-Dist: anthropic; extra == "anthropic"
80
+ Provides-Extra: azure
81
+ Requires-Dist: azure-ai-inference; extra == "azure"
82
+ Requires-Dist: aiohttp; extra == "azure"
83
+ Provides-Extra: cerebras
84
+ Requires-Dist: cerebras-cloud-sdk; extra == "cerebras"
85
+ Provides-Extra: cohere
86
+ Requires-Dist: cohere; extra == "cohere"
87
+ Provides-Extra: infinity
88
+ Requires-Dist: infinity_client; extra == "infinity"
89
+ Provides-Extra: google
90
+ Requires-Dist: google-genai; extra == "google"
91
+ Provides-Extra: groq
92
+ Requires-Dist: groq; extra == "groq"
93
+ Provides-Extra: ibm
94
+ Requires-Dist: ibm-watsonx-ai; extra == "ibm"
95
+ Provides-Extra: litellm
96
+ Requires-Dist: litellm; extra == "litellm"
97
+ Provides-Extra: lmstudio
98
+ Requires-Dist: lmstudio; extra == "lmstudio"
99
+ Provides-Extra: meta
100
+ Requires-Dist: llama-api-client; extra == "meta"
101
+ Provides-Extra: mistral
102
+ Requires-Dist: mistralai; extra == "mistral"
103
+ Provides-Extra: ollama
104
+ Requires-Dist: ollama; extra == "ollama"
105
+ Provides-Extra: openai
106
+ Requires-Dist: openai; extra == "openai"
107
+ Provides-Extra: portkey
108
+ Requires-Dist: portkey-ai; extra == "portkey"
109
+ Provides-Extra: agentql
110
+ Requires-Dist: agentql; extra == "agentql"
111
+ Provides-Extra: apify
112
+ Requires-Dist: apify-client; extra == "apify"
113
+ Provides-Extra: arxiv
114
+ Requires-Dist: arxiv; extra == "arxiv"
115
+ Provides-Extra: brave
116
+ Requires-Dist: brave-search; extra == "brave"
117
+ Provides-Extra: browserbase
118
+ Requires-Dist: browserbase; extra == "browserbase"
119
+ Requires-Dist: playwright; extra == "browserbase"
120
+ Provides-Extra: cartesia
121
+ Requires-Dist: cartesia; extra == "cartesia"
122
+ Provides-Extra: confluence
123
+ Requires-Dist: atlassian-python-api; extra == "confluence"
124
+ Provides-Extra: ddg
125
+ Requires-Dist: ddgs; extra == "ddg"
126
+ Provides-Extra: duckdb
127
+ Requires-Dist: duckdb; extra == "duckdb"
128
+ Provides-Extra: elevenlabs
129
+ Requires-Dist: elevenlabs; extra == "elevenlabs"
130
+ Provides-Extra: evm
131
+ Requires-Dist: web3; extra == "evm"
132
+ Provides-Extra: exa
133
+ Requires-Dist: exa_py; extra == "exa"
134
+ Provides-Extra: fal
135
+ Requires-Dist: fal_client; extra == "fal"
136
+ Provides-Extra: firecrawl
137
+ Requires-Dist: firecrawl-py; extra == "firecrawl"
138
+ Provides-Extra: tavily
139
+ Requires-Dist: tavily-python; extra == "tavily"
140
+ Provides-Extra: crawl4ai
141
+ Requires-Dist: crawl4ai; extra == "crawl4ai"
142
+ Provides-Extra: github
143
+ Requires-Dist: PyGithub; extra == "github"
144
+ Provides-Extra: gmail
145
+ Requires-Dist: google-api-python-client; extra == "gmail"
146
+ Requires-Dist: google-auth-httplib2; extra == "gmail"
147
+ Requires-Dist: google-auth-oauthlib; extra == "gmail"
148
+ Provides-Extra: google-bigquery
149
+ Requires-Dist: google-cloud-bigquery; extra == "google-bigquery"
150
+ Provides-Extra: googlemaps
151
+ Requires-Dist: googlemaps; extra == "googlemaps"
152
+ Requires-Dist: google-maps-places; extra == "googlemaps"
153
+ Provides-Extra: matplotlib
154
+ Requires-Dist: matplotlib; extra == "matplotlib"
155
+ Provides-Extra: mcp
156
+ Requires-Dist: mcp; extra == "mcp"
157
+ Provides-Extra: mem0
158
+ Requires-Dist: mem0ai; extra == "mem0"
159
+ Provides-Extra: memori
160
+ Requires-Dist: memorisdk; extra == "memori"
161
+ Provides-Extra: newspaper
162
+ Requires-Dist: newspaper4k; extra == "newspaper"
163
+ Requires-Dist: lxml_html_clean; extra == "newspaper"
164
+ Provides-Extra: notion
165
+ Requires-Dist: notion-client; extra == "notion"
166
+ Provides-Extra: opencv
167
+ Requires-Dist: opencv-python; extra == "opencv"
168
+ Provides-Extra: parallel
169
+ Requires-Dist: parallel-web; extra == "parallel"
170
+ Provides-Extra: psycopg
171
+ Requires-Dist: psycopg-binary; extra == "psycopg"
172
+ Requires-Dist: psycopg; extra == "psycopg"
173
+ Provides-Extra: reportlab
174
+ Requires-Dist: reportlab; extra == "reportlab"
175
+ Provides-Extra: scrapegraph
176
+ Requires-Dist: scrapegraph-py; extra == "scrapegraph"
177
+ Provides-Extra: todoist
178
+ Requires-Dist: todoist-api-python; extra == "todoist"
179
+ Provides-Extra: valyu
180
+ Requires-Dist: valyu; extra == "valyu"
181
+ Provides-Extra: webex
182
+ Requires-Dist: webexpythonsdk; extra == "webex"
183
+ Provides-Extra: yfinance
184
+ Requires-Dist: yfinance; extra == "yfinance"
185
+ Provides-Extra: youtube
186
+ Requires-Dist: youtube_transcript_api; extra == "youtube"
187
+ Provides-Extra: zep
188
+ Requires-Dist: zep-cloud; extra == "zep"
189
+ Provides-Extra: daytona
190
+ Requires-Dist: daytona; extra == "daytona"
191
+ Provides-Extra: oxylabs
192
+ Requires-Dist: oxylabs; extra == "oxylabs"
193
+ Provides-Extra: trafilatura
194
+ Requires-Dist: trafilatura; extra == "trafilatura"
195
+ Provides-Extra: neo4j
196
+ Requires-Dist: neo4j; extra == "neo4j"
197
+ Provides-Extra: sql
198
+ Requires-Dist: sqlalchemy; extra == "sql"
199
+ Provides-Extra: postgres
200
+ Requires-Dist: psycopg-binary; extra == "postgres"
201
+ Provides-Extra: async-postgres
202
+ Requires-Dist: asyncpg; extra == "async-postgres"
203
+ Provides-Extra: sqlite
204
+ Requires-Dist: sqlalchemy; extra == "sqlite"
205
+ Provides-Extra: gcs
206
+ Requires-Dist: google-cloud-storage; extra == "gcs"
207
+ Provides-Extra: firestore
208
+ Requires-Dist: google-cloud-firestore; extra == "firestore"
209
+ Provides-Extra: redis
210
+ Requires-Dist: redis; extra == "redis"
211
+ Requires-Dist: redisvl; extra == "redis"
212
+ Provides-Extra: pgvector
213
+ Requires-Dist: pgvector; extra == "pgvector"
214
+ Provides-Extra: chromadb
215
+ Requires-Dist: chromadb; extra == "chromadb"
216
+ Provides-Extra: lancedb
217
+ Requires-Dist: lancedb>=0.24.0; extra == "lancedb"
218
+ Requires-Dist: tantivy; extra == "lancedb"
219
+ Provides-Extra: pylance
220
+ Requires-Dist: pylance; extra == "pylance"
221
+ Provides-Extra: qdrant
222
+ Requires-Dist: qdrant-client; extra == "qdrant"
223
+ Provides-Extra: couchbase
224
+ Requires-Dist: couchbase; extra == "couchbase"
225
+ Provides-Extra: cassandra
226
+ Requires-Dist: cassio; extra == "cassandra"
227
+ Provides-Extra: mongodb
228
+ Requires-Dist: pymongo[srv]; extra == "mongodb"
229
+ Provides-Extra: singlestore
230
+ Requires-Dist: sqlalchemy; extra == "singlestore"
231
+ Provides-Extra: weaviate
232
+ Requires-Dist: weaviate-client; extra == "weaviate"
233
+ Provides-Extra: milvusdb
234
+ Requires-Dist: pymilvus>=2.5.10; extra == "milvusdb"
235
+ Provides-Extra: clickhouse
236
+ Requires-Dist: clickhouse-connect; extra == "clickhouse"
237
+ Provides-Extra: pinecone
238
+ Requires-Dist: pinecone==5.4.2; extra == "pinecone"
239
+ Provides-Extra: surrealdb
240
+ Requires-Dist: surrealdb>=1.0.4; extra == "surrealdb"
241
+ Provides-Extra: upstash
242
+ Requires-Dist: upstash-vector; extra == "upstash"
243
+ Provides-Extra: pdf
244
+ Requires-Dist: pypdf; extra == "pdf"
245
+ Requires-Dist: rapidocr_onnxruntime; extra == "pdf"
246
+ Provides-Extra: docx
247
+ Requires-Dist: python-docx; extra == "docx"
248
+ Provides-Extra: pptx
249
+ Requires-Dist: python-pptx; extra == "pptx"
250
+ Provides-Extra: text
251
+ Requires-Dist: aiofiles; extra == "text"
252
+ Provides-Extra: csv
253
+ Requires-Dist: aiofiles; extra == "csv"
254
+ Provides-Extra: markdown
255
+ Requires-Dist: unstructured; extra == "markdown"
256
+ Requires-Dist: markdown; extra == "markdown"
257
+ Requires-Dist: aiofiles; extra == "markdown"
258
+ Provides-Extra: chonkie
259
+ Requires-Dist: chonkie[st]; extra == "chonkie"
260
+ Requires-Dist: chonkie; extra == "chonkie"
261
+ Provides-Extra: agui
262
+ Requires-Dist: ag-ui-protocol; extra == "agui"
263
+ Provides-Extra: a2a
264
+ Requires-Dist: a2a-sdk; extra == "a2a"
265
+ Provides-Extra: huggingface
266
+ Requires-Dist: huggingface-hub; extra == "huggingface"
267
+ Provides-Extra: performance
268
+ Requires-Dist: memory_profiler; extra == "performance"
269
+ Provides-Extra: cookbooks
270
+ Requires-Dist: inquirer; extra == "cookbooks"
271
+ Requires-Dist: email_validator; extra == "cookbooks"
272
+ Provides-Extra: docker
273
+ Requires-Dist: agno-infra[docker]; extra == "docker"
274
+ Provides-Extra: aws
275
+ Requires-Dist: agno-infra[aws]; extra == "aws"
276
+ Requires-Dist: agno-infra[docker]; extra == "aws"
277
+ Provides-Extra: infra
278
+ Requires-Dist: agno-infra; extra == "infra"
279
+ Provides-Extra: models
280
+ Requires-Dist: agno[aws-bedrock]; extra == "models"
281
+ Requires-Dist: agno[anthropic]; extra == "models"
282
+ Requires-Dist: agno[azure]; extra == "models"
283
+ Requires-Dist: agno[cerebras]; extra == "models"
284
+ Requires-Dist: agno[cohere]; extra == "models"
285
+ Requires-Dist: agno[google]; extra == "models"
286
+ Requires-Dist: agno[groq]; extra == "models"
287
+ Requires-Dist: agno[ibm]; extra == "models"
288
+ Requires-Dist: agno[infinity]; extra == "models"
289
+ Requires-Dist: agno[litellm]; extra == "models"
290
+ Requires-Dist: agno[meta]; extra == "models"
291
+ Requires-Dist: agno[mistral]; extra == "models"
292
+ Requires-Dist: agno[ollama]; extra == "models"
293
+ Requires-Dist: agno[openai]; extra == "models"
294
+ Requires-Dist: agno[portkey]; extra == "models"
295
+ Provides-Extra: tools
296
+ Requires-Dist: agno[apify]; extra == "tools"
297
+ Requires-Dist: agno[arxiv]; extra == "tools"
298
+ Requires-Dist: agno[brave]; extra == "tools"
299
+ Requires-Dist: agno[exa]; extra == "tools"
300
+ Requires-Dist: agno[cartesia]; extra == "tools"
301
+ Requires-Dist: agno[ddg]; extra == "tools"
302
+ Requires-Dist: agno[duckdb]; extra == "tools"
303
+ Requires-Dist: agno[newspaper]; extra == "tools"
304
+ Requires-Dist: agno[youtube]; extra == "tools"
305
+ Requires-Dist: agno[firecrawl]; extra == "tools"
306
+ Requires-Dist: agno[tavily]; extra == "tools"
307
+ Requires-Dist: agno[crawl4ai]; extra == "tools"
308
+ Requires-Dist: agno[github]; extra == "tools"
309
+ Requires-Dist: agno[gmail]; extra == "tools"
310
+ Requires-Dist: agno[googlemaps]; extra == "tools"
311
+ Requires-Dist: agno[todoist]; extra == "tools"
312
+ Requires-Dist: agno[matplotlib]; extra == "tools"
313
+ Requires-Dist: agno[elevenlabs]; extra == "tools"
314
+ Requires-Dist: agno[evm]; extra == "tools"
315
+ Requires-Dist: agno[fal]; extra == "tools"
316
+ Requires-Dist: agno[webex]; extra == "tools"
317
+ Requires-Dist: agno[mcp]; extra == "tools"
318
+ Requires-Dist: agno[browserbase]; extra == "tools"
319
+ Requires-Dist: agno[agentql]; extra == "tools"
320
+ Requires-Dist: agno[opencv]; extra == "tools"
321
+ Requires-Dist: agno[parallel]; extra == "tools"
322
+ Requires-Dist: agno[scrapegraph]; extra == "tools"
323
+ Requires-Dist: agno[valyu]; extra == "tools"
324
+ Requires-Dist: agno[confluence]; extra == "tools"
325
+ Requires-Dist: agno[notion]; extra == "tools"
326
+ Requires-Dist: agno[oxylabs]; extra == "tools"
327
+ Requires-Dist: agno[zep]; extra == "tools"
328
+ Requires-Dist: agno[mem0]; extra == "tools"
329
+ Requires-Dist: agno[memori]; extra == "tools"
330
+ Requires-Dist: agno[google_bigquery]; extra == "tools"
331
+ Requires-Dist: agno[psycopg]; extra == "tools"
332
+ Requires-Dist: agno[reportlab]; extra == "tools"
333
+ Requires-Dist: agno[trafilatura]; extra == "tools"
334
+ Requires-Dist: agno[neo4j]; extra == "tools"
335
+ Provides-Extra: storage
336
+ Requires-Dist: agno[sql]; extra == "storage"
337
+ Requires-Dist: agno[postgres]; extra == "storage"
338
+ Requires-Dist: agno[async_postgres]; extra == "storage"
339
+ Requires-Dist: agno[sqlite]; extra == "storage"
340
+ Requires-Dist: agno[gcs]; extra == "storage"
341
+ Requires-Dist: agno[firestore]; extra == "storage"
342
+ Requires-Dist: agno[redis]; extra == "storage"
343
+ Provides-Extra: vectordbs
344
+ Requires-Dist: agno[pgvector]; extra == "vectordbs"
345
+ Requires-Dist: agno[chromadb]; extra == "vectordbs"
346
+ Requires-Dist: agno[lancedb]; extra == "vectordbs"
347
+ Requires-Dist: agno[qdrant]; extra == "vectordbs"
348
+ Requires-Dist: agno[couchbase]; extra == "vectordbs"
349
+ Requires-Dist: agno[cassandra]; extra == "vectordbs"
350
+ Requires-Dist: agno[mongodb]; extra == "vectordbs"
351
+ Requires-Dist: agno[singlestore]; extra == "vectordbs"
352
+ Requires-Dist: agno[weaviate]; extra == "vectordbs"
353
+ Requires-Dist: agno[milvusdb]; extra == "vectordbs"
354
+ Requires-Dist: agno[clickhouse]; extra == "vectordbs"
355
+ Requires-Dist: agno[pinecone]; extra == "vectordbs"
356
+ Requires-Dist: agno[surrealdb]; extra == "vectordbs"
357
+ Requires-Dist: agno[upstash]; extra == "vectordbs"
358
+ Provides-Extra: knowledge
359
+ Requires-Dist: agno[pdf]; extra == "knowledge"
360
+ Requires-Dist: agno[docx]; extra == "knowledge"
361
+ Requires-Dist: agno[pptx]; extra == "knowledge"
362
+ Requires-Dist: agno[text]; extra == "knowledge"
363
+ Requires-Dist: agno[csv]; extra == "knowledge"
364
+ Requires-Dist: agno[markdown]; extra == "knowledge"
365
+ Requires-Dist: agno[chonkie]; extra == "knowledge"
366
+ Provides-Extra: embedders
367
+ Requires-Dist: agno[huggingface]; extra == "embedders"
368
+ Requires-Dist: agno[vllm]; extra == "embedders"
369
+ Provides-Extra: tests
370
+ Requires-Dist: agno[dev]; extra == "tests"
371
+ Requires-Dist: agno[models]; extra == "tests"
372
+ Requires-Dist: agno[tools]; extra == "tests"
373
+ Requires-Dist: agno[storage]; extra == "tests"
374
+ Requires-Dist: agno[vectordbs]; extra == "tests"
375
+ Requires-Dist: agno[knowledge]; extra == "tests"
376
+ Requires-Dist: agno[embedders]; extra == "tests"
377
+ Requires-Dist: agno[performance]; extra == "tests"
378
+ Requires-Dist: agno[cookbooks]; extra == "tests"
379
+ Requires-Dist: agno[agui]; extra == "tests"
380
+ Requires-Dist: twine; extra == "tests"
381
+ Requires-Dist: build; extra == "tests"
382
+ Dynamic: license-file
383
+
384
+ <div align="center" id="top">
385
+ <a href="https://agno.com">
386
+ <picture>
387
+ <source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
388
+ <source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
389
+ <img src="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg" alt="Agno">
390
+ </picture>
391
+ </a>
392
+ </div>
393
+
394
+ <div align="center">
395
+ <a href="https://docs.agno.com">Documentation</a>
396
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
397
+ <a href="https://docs.agno.com/examples/introduction">Examples</a>
398
+ <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
399
+ <a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
400
+ <br />
401
+ </div>
402
+
403
+ ## What is Agno?
404
+
405
+ Agno is a multi-agent framework, runtime and control plane. Built for speed, privacy, and scale.
406
+
407
+ It provides a rich set of tools for building:
408
+
409
+ - **Agents** with memory, knowledge, session management, and advanced features like human-in-the-loop, guardrails, dynamic context management and best-in-class MCP support.
410
+ - **Multi-Agent Teams** that operate autonomously under a team leader that maintains shared state and context. Perfect for use cases where the scope exceeds beyond a single agent.
411
+ - **Step-based Workflows** for controlled, deterministic execution. Steps can be Agents, Teams, or regular python functions that run sequentially, in parallel, in loops, branches, or conditionally.
412
+
413
+ Agno also provides a ready-to-use FastAPI app (called the AgentOS) for serving your agents, teams and workflows in production. Stateless, horizontally scalable and designed for scale, the AgentOS gives you major head start in building your AI product.
414
+
415
+ ## Getting started
416
+
417
+ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introduction/quickstart) to build your first Agent and chat with it using the AgentOS UI.
418
+
419
+ After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
420
+
421
+ ## Documentation, Community & More Examples
422
+
423
+ - Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
424
+ - Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
425
+ - Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
426
+ - Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
427
+
428
+ ## Example
429
+
430
+ Here’s an example of an Agent that connects to an MCP server, manages conversation state in a database, is served using a FastAPI application that you can chat with using the [AgentOS UI](https://os.agno.com).
431
+
432
+ ```python agno_agent.py
433
+ from agno.agent import Agent
434
+ from agno.db.sqlite import SqliteDb
435
+ from agno.models.anthropic import Claude
436
+ from agno.os import AgentOS
437
+ from agno.tools.mcp import MCPTools
438
+
439
+ # ************* Create Agent *************
440
+ agno_agent = Agent(
441
+ name="Agno Agent",
442
+ model=Claude(id="claude-sonnet-4-5"),
443
+ # Add a database to the Agent
444
+ db=SqliteDb(db_file="agno.db"),
445
+ # Add the Agno MCP server to the Agent
446
+ tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
447
+ # Add the previous session history to the context
448
+ add_history_to_context=True,
449
+ markdown=True,
450
+ )
451
+
452
+
453
+ # ************* Create AgentOS *************
454
+ agent_os = AgentOS(agents=[agno_agent])
455
+ # Get the FastAPI app for the AgentOS
456
+ app = agent_os.get_app()
457
+
458
+ # ************* Run AgentOS *************
459
+ if __name__ == "__main__":
460
+ agent_os.serve(app="agno_agent:app", reload=True)
461
+ ```
462
+
463
+ ## AgentOS - Production Runtime for Multi-Agent Systems
464
+
465
+ Building Agents is easy, running them is hard, and that's where the AgentOS comes in. AgentOS is a high-performance runtime for serving multi-agent systems in production. Key features include:
466
+
467
+ 1. **Pre-built FastAPI app**: AgentOS ships with a ready-to-use FastAPI app for orchestrating your agents, teams, and workflows. This gives you a major head start in building your AI product.
468
+
469
+ 2. **Integrated Control Plane**: The [AgentOS UI](https://os.agno.com) connects directly to your runtime, letting you test, monitor, and manage your system in real time, giving you unmatched control over your system.
470
+
471
+ 3. **Private by Design**: AgentOS runs entirely in your cloud, ensuring complete data privacy. No data ever leaves your system. This is ideal for security-conscious enterprises.
472
+
473
+ Here's what the [AgentOS UI](https://os.agno.com) looks like in action:
474
+
475
+ https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
476
+
477
+ ## The Complete Agentic Solution
478
+
479
+ For companies building agents, Agno provides the complete agentic solution:
480
+
481
+ - The fastest framework for building agents, multi-agent teams and agentic workflows.
482
+ - A ready-to-use FastAPI app that gets you building AI products on day one.
483
+ - A control plane for testing, monitoring and managing your system.
484
+
485
+ Agno brings 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 any external services or pay retention costs, you get complete privacy and control.
486
+
487
+ ## Designed for Agent Engineering
488
+
489
+ Agno is an incredibly feature-rich framework, designed for Agent Engineering. Here are some key features:
490
+
491
+ | **Category** | **Feature** | **Description** |
492
+ |---------------|-------------|-----------------|
493
+ | **Core Intelligence** | **Model Agnostic** | Works with any model provider so you can use your favorite LLMs. |
494
+ | | **Type Safe** | Enforce structured I/O through `input_schema` and `output_schema` for predictable, composable behavior. |
495
+ | | **Dynamic Context Engineering** | Inject variables, state, and retrieved data on the fly into context. Perfect for dependency-driven agents. |
496
+ | **Memory, Knowledge, and Persistence** | **Persistent Storage** | Give your Agents, Teams, and Workflows a database to persist session history, state, and messages. |
497
+ | | **User Memory** | Built-in memory system that allows Agents to recall user-specific context across sessions. |
498
+ | | **Agentic RAG** | Connect to 20+ vector stores (called **Knowledge** in Agno) with hybrid search + reranking out of the box. |
499
+ | | **Culture (Collective Memory)** | Shared knowledge that compounds across agents and time. |
500
+ | **Execution & Control** | **Human-in-the-Loop** | Native support for confirmations, manual overrides, and external tool execution. |
501
+ | | **Guardrails** | Built-in safeguards for validation, security, and prompt protection. |
502
+ | | **Agent Lifecycle Hooks** | Pre- and post-hooks to validate or transform inputs and outputs. |
503
+ | | **MCP Integration** | First-class support for the Model Context Protocol (MCP) to connect Agents with external systems. |
504
+ | | **Toolkits** | 100+ built-in toolkits with thousands of tools, ready for use across data, code, web, and enterprise APIs. |
505
+ | **Runtime & Evaluation** | **Runtime** | Pre-built FastAPI based runtime with SSE compatible endpoints, ready for production on day 1. |
506
+ | | **Control Plane (UI)** | Integrated interface to visualize, monitor, and debug agent activity in real time. |
507
+ | | **Natively Multimodal** | Agents can process and generate text, images, audio, video, and files. |
508
+ | | **Evals** | Measure your Agents' Accuracy, Performance, and Reliability. |
509
+ | **Security & Privacy** | **Private by Design** | Runs entirely in your cloud. The UI connects directly to your AgentOS from your browser, no data is ever sent externally. |
510
+ | | **Data Governance** | Your data lives securely in your Agent database, no external data sharing or vendor lock-in. |
511
+ | | **Access Control** | Role-based access (RBAC) and per-agent permissions to protect sensitive contexts and tools. |
512
+
513
+ Every part of Agno is built for real-world deployment — where developer experience meets production performance.
514
+
515
+ ## Setup Your Coding Agent to Use Agno
516
+
517
+ 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. This file is built for AI systems to efficiently parse and reference our documentation.
518
+
519
+ ### IDE Integration
520
+
521
+ 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:
522
+
523
+ 1. In Cursor, go to the "Cursor Settings" menu.
524
+ 2. Find the "Indexing & Docs" section.
525
+ 3. Add `https://docs.agno.com/llms-full.txt` to the list of documentation URLs.
526
+ 4. Save the changes.
527
+
528
+ Now, Cursor will have access to the Agno documentation. You can do the same with other IDEs like VSCode, Windsurf etc.
529
+
530
+ ## Performance
531
+
532
+ If you're building with Agno, you're guaranteed best-in-class performance by default. Our obsession with performance is necessary because even simple AI workflows can spawn hundreds of Agents and because many tasks are long-running -- stateless, horizontal scalability is key for success.
533
+
534
+ At Agno, we optimize performance across 3 dimensions:
535
+
536
+ 1. **Agent performance:** We optimize static operations (instantiation, memory footprint) and runtime operations (tool calls, memory updates, history management).
537
+ 2. **System performance:** The AgentOS API is async by default and has a minimal memory footprint. The system is stateless and horizontally scalable, with a focus on preventing memory leaks. It handles parallel and batch embedding generation during knowledge ingestion, metrics collection in background tasks, and other system-level optimizations.
538
+ 3. **Agent reliability and accuracy:** Monitored through evals, which we’ll explore later.
539
+
540
+ ### Agent Performance
541
+
542
+ Let's measure the time it takes to instantiate an Agent and the memory footprint of an Agent. Here are the numbers (last measured in Oct 2025, on an Apple M4 MacBook Pro):
543
+
544
+ - **Agent instantiation:** ~3μs on average
545
+ - **Memory footprint:** ~6.6Kib on average
546
+
547
+ We'll show below that Agno Agents instantiate **529× faster than Langgraph**, **57× faster than PydanticAI**, and **70× faster than CrewAI**. Agno Agents also use **24× lower memory than Langgraph**, **4× lower than PydanticAI**, and **10× lower than CrewAI**.
548
+
549
+ > [!NOTE]
550
+ > Run time performance is bottlenecked by inference and hard to benchmark accurately, so we focus on minimizing overhead, reducing memory usage, and parallelizing tool calls.
551
+
552
+ ### Instantiation Time
553
+
554
+ Let's measure instantiation time for an Agent with 1 tool. We'll run the evaluation 1000 times to get a baseline measurement. We'll compare Agno to LangGraph, CrewAI and Pydantic AI.
555
+
556
+ > [!NOTE]
557
+ > The code for this benchmark is available [here](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance). You should run the evaluation yourself on your own machine, please, do not take these results at face value.
558
+
559
+ ```shell
560
+ # Setup virtual environment
561
+ ./scripts/perf_setup.sh
562
+ source .venvs/perfenv/bin/activate
563
+
564
+ # Agno
565
+ python cookbook/evals/performance/instantiate_agent_with_tool.py
566
+
567
+ # LangGraph
568
+ python cookbook/evals/performance/comparison/langgraph_instantiation.py
569
+ # CrewAI
570
+ python cookbook/evals/performance/comparison/crewai_instantiation.py
571
+ # Pydantic AI
572
+ python cookbook/evals/performance/comparison/pydantic_ai_instantiation.py
573
+ ```
574
+
575
+ LangGraph is on the right, **let's start it first and give it a head start**. Then CrewAI and Pydantic AI follow, and finally Agno. Agno obviously finishes first, but let's see by how much.
576
+
577
+ https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
578
+
579
+ ### Memory Usage
580
+
581
+ 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.
582
+
583
+ 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.
584
+
585
+ ### Results
586
+
587
+ Taking Agno as the baseline, we can see that:
588
+
589
+ | Metric | Agno | Langgraph | PydanticAI | CrewAI |
590
+ | ------------------ | ---- | ----------- | ---------- | ---------- |
591
+ | **Time (seconds)** | 1× | 529× slower | 57× slower | 70× slower |
592
+ | **Memory (MiB)** | 1× | 24× higher | 4× higher | 10× higher |
593
+
594
+ Exact numbers from the benchmark:
595
+
596
+ | Metric | Agno | Langgraph | PydanticAI | CrewAI |
597
+ | ------------------ | -------- | --------- | ---------- | -------- |
598
+ | **Time (seconds)** | 0.000003 | 0.001587 | 0.000170 | 0.000210 |
599
+ | **Memory (MiB)** | 0.006642 | 0.161435 | 0.028712 | 0.065652 |
600
+
601
+ > [!NOTE]
602
+ > Agno agents are designed for performance and while we share benchmarks against other frameworks, we should be mindful that accuracy and reliability are more important than speed.
603
+
604
+ ## Contributions
605
+
606
+ We welcome contributions, read our [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md) to get started.
607
+
608
+ ## Telemetry
609
+
610
+ 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.
611
+
612
+ <p align="left">
613
+ <a href="#top">⬆️ Back to Top</a>
614
+ </p>