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
agno/tools/exa.py CHANGED
@@ -19,11 +19,15 @@ class ExaTools(Toolkit):
19
19
  functionalities to perform categorized searches and retrieve structured results.
20
20
 
21
21
  Args:
22
+ enable_search (bool): Enable search functionality. Default is True.
23
+ enable_get_contents (bool): Enable get contents functionality. Default is True.
24
+ enable_find_similar (bool): Enable find similar functionality. Default is True.
25
+ enable_answer (bool): Enable answer generation. Default is True.
26
+ enable_research (bool): Enable research tool functionality. Default is False.
27
+ all (bool): Enable all tools. Overrides individual flags when True. Default is False.
22
28
  text (bool): Retrieve text content from results. Default is True.
23
29
  text_length_limit (int): Max length of text content per result. Default is 1000.
24
30
  highlights (bool): Include highlighted snippets. Default is True.
25
- answer (bool): Enable answer generation. Default is True.
26
- research (bool): Enable research tool functionality. Default is True.
27
31
  api_key (Optional[str]): Exa API key. Retrieved from `EXA_API_KEY` env variable if not provided.
28
32
  num_results (Optional[int]): Default number of search results. Overrides individual searches if set.
29
33
  start_crawl_date (Optional[str]): Include results crawled on/after this date (`YYYY-MM-DD`).
@@ -42,11 +46,12 @@ class ExaTools(Toolkit):
42
46
 
43
47
  def __init__(
44
48
  self,
45
- search: bool = True,
46
- get_contents: bool = True,
47
- find_similar: bool = True,
48
- answer: bool = True,
49
- research: bool = False,
49
+ enable_search: bool = True,
50
+ enable_get_contents: bool = True,
51
+ enable_find_similar: bool = True,
52
+ enable_answer: bool = True,
53
+ enable_research: bool = False,
54
+ all: bool = False,
50
55
  text: bool = True,
51
56
  text_length_limit: int = 1000,
52
57
  highlights: bool = True,
@@ -96,15 +101,15 @@ class ExaTools(Toolkit):
96
101
  self.research_model: Literal["exa-research", "exa-research-pro"] = research_model
97
102
 
98
103
  tools: List[Any] = []
99
- if search:
104
+ if all or enable_search:
100
105
  tools.append(self.search_exa)
101
- if get_contents:
106
+ if all or enable_get_contents:
102
107
  tools.append(self.get_contents)
103
- if find_similar:
108
+ if all or enable_find_similar:
104
109
  tools.append(self.find_similar)
105
- if answer:
110
+ if all or enable_answer:
106
111
  tools.append(self.exa_answer)
107
- if research:
112
+ if all or enable_research:
108
113
  tools.append(self.research)
109
114
 
110
115
  super().__init__(name="exa", tools=tools, **kwargs)
@@ -353,14 +358,14 @@ class ExaTools(Toolkit):
353
358
  else:
354
359
  task_kwargs["output_infer_schema"] = True
355
360
 
356
- task_result = self._execute_with_timeout(self.exa.research.create_task, **task_kwargs)
361
+ task_result = self._execute_with_timeout(self.exa.research.create_task, **task_kwargs) # type: ignore
357
362
  task_id = task_result.id
358
363
 
359
364
  if self.show_results:
360
365
  log_info(f"Research task created with ID: {task_id}")
361
366
 
362
367
  # Step 2: Poll until complete (using default polling settings)
363
- task = self.exa.research.poll_task(task_id)
368
+ task = self.exa.research.poll_task(task_id) # type: ignore
364
369
 
365
370
  # Step 3: Format and return results
366
371
  result: Dict[str, Any] = {"data": task.data, "citations": {}}
agno/tools/fal.py CHANGED
@@ -7,9 +7,10 @@ from typing import Optional, Union
7
7
  from uuid import uuid4
8
8
 
9
9
  from agno.agent import Agent
10
- from agno.media import ImageArtifact, VideoArtifact
10
+ from agno.media import Image, Video
11
11
  from agno.team.team import Team
12
12
  from agno.tools import Toolkit
13
+ from agno.tools.function import ToolResult
13
14
  from agno.utils.log import log_info, logger
14
15
 
15
16
  try:
@@ -23,16 +24,22 @@ class FalTools(Toolkit):
23
24
  self,
24
25
  api_key: Optional[str] = None,
25
26
  model: str = "fal-ai/hunyuan-video",
27
+ enable_generate_media: bool = True,
28
+ enable_image_to_image: bool = False,
29
+ all: bool = False,
26
30
  **kwargs,
27
31
  ):
28
- self.api_key = api_key or getenv("FAL_KEY")
32
+ self.api_key = api_key or getenv("FAL_API_KEY")
29
33
  if not self.api_key:
30
- logger.error("FAL_KEY not set. Please set the FAL_KEY environment variable.")
34
+ logger.error("FAL_API_KEY not set. Please set the FAL_API_KEY environment variable.")
31
35
  self.model = model
32
36
  self.seen_logs: set[str] = set()
33
37
 
34
38
  tools = []
35
- tools.append(self.generate_media)
39
+ if all or enable_generate_media:
40
+ tools.append(self.generate_media)
41
+ if all or enable_image_to_image:
42
+ tools.append(self.image_to_image)
36
43
 
37
44
  super().__init__(name="fal-tools", tools=tools, **kwargs)
38
45
 
@@ -44,14 +51,14 @@ class FalTools(Toolkit):
44
51
  log_info(message)
45
52
  self.seen_logs.add(message)
46
53
 
47
- def generate_media(self, agent: Union[Agent, Team], prompt: str) -> str:
54
+ def generate_media(self, agent: Union[Agent, Team], prompt: str) -> ToolResult:
48
55
  """
49
56
  Use this function to run a model with a given prompt.
50
57
 
51
58
  Args:
52
59
  prompt (str): A text description of the task.
53
60
  Returns:
54
- str: Return the result of the model.
61
+ ToolResult: Contains the generated media and success message.
55
62
  """
56
63
  try:
57
64
  result = fal_client.subscribe(
@@ -65,32 +72,27 @@ class FalTools(Toolkit):
65
72
 
66
73
  if "image" in result:
67
74
  url = result.get("image", {}).get("url", "")
68
- agent.add_image(
69
- ImageArtifact(
70
- id=media_id,
71
- url=url,
72
- )
75
+ image_artifact = Image(
76
+ id=media_id,
77
+ url=url,
73
78
  )
74
- media_type = "image"
79
+ return ToolResult(content=f"Image generated successfully at {url}", images=[image_artifact])
75
80
  elif "video" in result:
76
81
  url = result.get("video", {}).get("url", "")
77
- agent.add_video(
78
- VideoArtifact(
79
- id=media_id,
80
- url=url,
81
- )
82
+ video_artifact = Video(
83
+ id=media_id,
84
+ url=url,
82
85
  )
83
- media_type = "video"
86
+ return ToolResult(content=f"Video generated successfully at {url}", videos=[video_artifact])
84
87
  else:
85
88
  logger.error(f"Unsupported type in result: {result}")
86
- return f"Unsupported type in result: {result}"
89
+ return ToolResult(content=f"Unsupported type in result: {result}")
87
90
 
88
- return f"{media_type.capitalize()} generated successfully at {url}"
89
91
  except Exception as e:
90
92
  logger.error(f"Failed to run model: {e}")
91
- return f"Error: {e}"
93
+ return ToolResult(content=f"Error: {e}")
92
94
 
93
- def image_to_image(self, agent: Union[Agent, Team], prompt: str, image_url: Optional[str] = None) -> str:
95
+ def image_to_image(self, agent: Union[Agent, Team], prompt: str, image_url: Optional[str] = None) -> ToolResult:
94
96
  """
95
97
  Use this function to transform an input image based on a text prompt using the Fal AI image-to-image model.
96
98
  The model takes an existing image and generates a new version modified according to your prompt.
@@ -101,7 +103,7 @@ class FalTools(Toolkit):
101
103
  image_url (str): The URL of the image to use for the generation.
102
104
 
103
105
  Returns:
104
- str: Return the result of the model.
106
+ ToolResult: Contains the generated image and success message.
105
107
  """
106
108
 
107
109
  try:
@@ -113,15 +115,13 @@ class FalTools(Toolkit):
113
115
  )
114
116
  url = result.get("images", [{}])[0].get("url", "")
115
117
  media_id = str(uuid4())
116
- agent.add_image(
117
- ImageArtifact(
118
- id=media_id,
119
- url=url,
120
- )
118
+ image_artifact = Image(
119
+ id=media_id,
120
+ url=url,
121
121
  )
122
122
 
123
- return f"Image generated successfully at {url}"
123
+ return ToolResult(content=f"Image generated successfully at {url}", images=[image_artifact])
124
124
 
125
125
  except Exception as e:
126
126
  logger.error(f"Failed to generate image: {e}")
127
- return f"Error: {e}"
127
+ return ToolResult(content=f"Error: {e}")
agno/tools/file.py CHANGED
@@ -10,22 +10,23 @@ class FileTools(Toolkit):
10
10
  def __init__(
11
11
  self,
12
12
  base_dir: Optional[Path] = None,
13
- save_files: bool = True,
14
- read_files: bool = True,
15
- list_files: bool = True,
16
- search_files: bool = True,
13
+ enable_save_file: bool = True,
14
+ enable_read_file: bool = True,
15
+ enable_list_files: bool = True,
16
+ enable_search_files: bool = True,
17
+ all: bool = False,
17
18
  **kwargs,
18
19
  ):
19
20
  self.base_dir: Path = base_dir or Path.cwd()
20
21
 
21
22
  tools: List[Any] = []
22
- if save_files:
23
+ if all or enable_save_file:
23
24
  tools.append(self.save_file)
24
- if read_files:
25
+ if all or enable_read_file:
25
26
  tools.append(self.read_file)
26
- if list_files:
27
+ if all or enable_list_files:
27
28
  tools.append(self.list_files)
28
- if search_files:
29
+ if all or enable_search_files:
29
30
  tools.append(self.search_files)
30
31
 
31
32
  super().__init__(name="file_tools", tools=tools, **kwargs)
@@ -11,29 +11,12 @@ class FinancialDatasetsTools(Toolkit):
11
11
  def __init__(
12
12
  self,
13
13
  api_key: Optional[str] = None,
14
- enable_financial_statements: bool = True,
15
- enable_company_info: bool = True,
16
- enable_market_data: bool = True,
17
- enable_ownership_data: bool = True,
18
- enable_news: bool = True,
19
- enable_sec_filings: bool = True,
20
- enable_crypto: bool = True,
21
- enable_search: bool = True,
22
14
  **kwargs,
23
15
  ):
24
- """
25
- Initialize the Financial Datasets Tools with feature flags.
16
+ """Initialize the Financial Datasets Tools.
26
17
 
27
18
  Args:
28
19
  api_key: API key for Financial Datasets API (optional, can be set via environment variable)
29
- enable_financial_statements: Enable financial statement related functions (income statements, balance sheets, etc.)
30
- enable_company_info: Enable company information related functions
31
- enable_market_data: Enable market data related functions (stock prices, earnings, metrics)
32
- enable_ownership_data: Enable ownership data related functions (insider trades, institutional ownership)
33
- enable_news: Enable news related functions
34
- enable_sec_filings: Enable SEC filings related functions
35
- enable_crypto: Enable cryptocurrency related functions
36
- enable_search: Enable search related functions
37
20
  """
38
21
 
39
22
  self.api_key: Optional[str] = api_key or getenv("FINANCIAL_DATASETS_API_KEY")
@@ -44,32 +27,30 @@ class FinancialDatasetsTools(Toolkit):
44
27
 
45
28
  self.base_url = "https://api.financialdatasets.ai"
46
29
 
47
- tools: List[Any] = []
48
-
49
- if enable_financial_statements:
50
- tools.extend(
51
- [
52
- self.get_income_statements,
53
- self.get_balance_sheets,
54
- self.get_cash_flow_statements,
55
- self.get_segmented_financials,
56
- self.get_financial_metrics,
57
- ]
58
- )
59
- if enable_company_info:
60
- tools.append(self.get_company_info)
61
- if enable_market_data:
62
- tools.extend([self.get_stock_prices, self.get_earnings])
63
- if enable_ownership_data:
64
- tools.extend([self.get_insider_trades, self.get_institutional_ownership])
65
- if enable_news:
66
- tools.append(self.get_news)
67
- if enable_sec_filings:
68
- tools.append(self.get_sec_filings)
69
- if enable_crypto:
70
- tools.append(self.get_crypto_prices)
71
- if enable_search:
72
- tools.append(self.search_tickers)
30
+ tools: List[Any] = [
31
+ # Financial statements
32
+ self.get_income_statements,
33
+ self.get_balance_sheets,
34
+ self.get_cash_flow_statements,
35
+ self.get_segmented_financials,
36
+ self.get_financial_metrics,
37
+ # Company info
38
+ self.get_company_info,
39
+ # Market data
40
+ self.get_stock_prices,
41
+ self.get_earnings,
42
+ # Ownership data
43
+ self.get_insider_trades,
44
+ self.get_institutional_ownership,
45
+ # News
46
+ self.get_news,
47
+ # SEC filings
48
+ self.get_sec_filings,
49
+ # Crypto
50
+ self.get_crypto_prices,
51
+ # Search
52
+ self.search_tickers,
53
+ ]
73
54
 
74
55
  super().__init__(name="financial_datasets_tools", tools=tools, **kwargs)
75
56
 
agno/tools/firecrawl.py CHANGED
@@ -6,7 +6,8 @@ from agno.tools import Toolkit
6
6
  from agno.utils.log import logger
7
7
 
8
8
  try:
9
- from firecrawl import FirecrawlApp, ScrapeOptions # type: ignore[attr-defined]
9
+ from firecrawl import FirecrawlApp # type: ignore[attr-defined]
10
+ from firecrawl.types import ScrapeOptions
10
11
  except ImportError:
11
12
  raise ImportError("`firecrawl-py` not installed. Please install using `pip install firecrawl-py`")
12
13
 
@@ -24,26 +25,32 @@ class CustomJSONEncoder(json.JSONEncoder):
24
25
  class FirecrawlTools(Toolkit):
25
26
  """
26
27
  Firecrawl is a tool for scraping and crawling websites.
28
+
27
29
  Args:
28
30
  api_key (Optional[str]): The API key to use for the Firecrawl app.
31
+ enable_scrape (bool): Enable website scraping functionality. Default is True.
32
+ enable_crawl (bool): Enable website crawling functionality. Default is False.
33
+ enable_mapping (bool): Enable website mapping functionality. Default is False.
34
+ enable_search (bool): Enable web search functionality. Default is False.
35
+ all (bool): Enable all tools. Overrides individual flags when True. Default is False.
29
36
  formats (Optional[List[str]]): The formats to use for the Firecrawl app.
30
37
  limit (int): The maximum number of pages to crawl.
31
- scrape (bool): Whether to scrape the website.
32
- crawl (bool): Whether to crawl the website.
33
- mapping (bool): Whether to map the website.
38
+ poll_interval (int): Polling interval for crawl operations.
39
+ search_params (Optional[Dict[str, Any]]): Parameters for search operations.
34
40
  api_url (Optional[str]): The API URL to use for the Firecrawl app.
35
41
  """
36
42
 
37
43
  def __init__(
38
44
  self,
39
45
  api_key: Optional[str] = None,
46
+ enable_scrape: bool = True,
47
+ enable_crawl: bool = False,
48
+ enable_mapping: bool = False,
49
+ enable_search: bool = False,
50
+ all: bool = False,
40
51
  formats: Optional[List[str]] = None,
41
52
  limit: int = 10,
42
53
  poll_interval: int = 30,
43
- scrape: bool = True,
44
- crawl: bool = False,
45
- mapping: bool = False,
46
- search: bool = False,
47
54
  search_params: Optional[Dict[str, Any]] = None,
48
55
  api_url: Optional[str] = "https://api.firecrawl.dev",
49
56
  **kwargs,
@@ -58,21 +65,14 @@ class FirecrawlTools(Toolkit):
58
65
  self.app: FirecrawlApp = FirecrawlApp(api_key=self.api_key, api_url=api_url)
59
66
  self.search_params = search_params
60
67
 
61
- # Start with scrape by default. But if crawl is set, then set scrape to False.
62
- if crawl:
63
- scrape = False
64
- mapping = False
65
- elif not scrape:
66
- crawl = True
67
-
68
68
  tools: List[Any] = []
69
- if scrape:
69
+ if all or enable_scrape:
70
70
  tools.append(self.scrape_website)
71
- if crawl:
71
+ if all or enable_crawl:
72
72
  tools.append(self.crawl_website)
73
- if mapping:
73
+ if all or enable_mapping:
74
74
  tools.append(self.map_website)
75
- if search:
75
+ if all or enable_search:
76
76
  tools.append(self.search)
77
77
 
78
78
  super().__init__(name="firecrawl_tools", tools=tools, **kwargs)
@@ -87,7 +87,7 @@ class FirecrawlTools(Toolkit):
87
87
  if self.formats:
88
88
  params["formats"] = self.formats
89
89
 
90
- scrape_result = self.app.scrape_url(url, **params)
90
+ scrape_result = self.app.scrape(url, **params)
91
91
  return json.dumps(scrape_result.model_dump(), cls=CustomJSONEncoder)
92
92
 
93
93
  def crawl_website(self, url: str, limit: Optional[int] = None) -> str:
@@ -108,7 +108,7 @@ class FirecrawlTools(Toolkit):
108
108
 
109
109
  params["poll_interval"] = self.poll_interval
110
110
 
111
- crawl_result = self.app.crawl_url(url, **params)
111
+ crawl_result = self.app.crawl(url, **params)
112
112
  return json.dumps(crawl_result.model_dump(), cls=CustomJSONEncoder)
113
113
 
114
114
  def map_website(self, url: str) -> str:
@@ -118,7 +118,7 @@ class FirecrawlTools(Toolkit):
118
118
  url (str): The URL to map.
119
119
 
120
120
  """
121
- map_result = self.app.map_url(url)
121
+ map_result = self.app.map(url)
122
122
  return json.dumps(map_result.model_dump(), cls=CustomJSONEncoder)
123
123
 
124
124
  def search(self, query: str, limit: Optional[int] = None):