agno 1.8.2__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.
- agno/agent/__init__.py +19 -27
- agno/agent/agent.py +3143 -4170
- agno/api/agent.py +11 -67
- agno/api/api.py +5 -46
- agno/api/evals.py +8 -19
- agno/api/os.py +17 -0
- agno/api/routes.py +6 -41
- agno/api/schemas/__init__.py +9 -0
- agno/api/schemas/agent.py +5 -21
- agno/api/schemas/evals.py +7 -16
- agno/api/schemas/os.py +14 -0
- agno/api/schemas/team.py +5 -21
- agno/api/schemas/utils.py +21 -0
- agno/api/schemas/workflows.py +11 -7
- agno/api/settings.py +53 -0
- agno/api/team.py +11 -66
- agno/api/workflow.py +28 -0
- agno/cloud/aws/base.py +214 -0
- agno/cloud/aws/s3/__init__.py +2 -0
- agno/cloud/aws/s3/api_client.py +43 -0
- agno/cloud/aws/s3/bucket.py +195 -0
- agno/cloud/aws/s3/object.py +57 -0
- agno/db/__init__.py +24 -0
- agno/db/base.py +245 -0
- agno/db/dynamo/__init__.py +3 -0
- agno/db/dynamo/dynamo.py +1743 -0
- agno/db/dynamo/schemas.py +278 -0
- agno/db/dynamo/utils.py +684 -0
- agno/db/firestore/__init__.py +3 -0
- agno/db/firestore/firestore.py +1432 -0
- agno/db/firestore/schemas.py +130 -0
- agno/db/firestore/utils.py +278 -0
- agno/db/gcs_json/__init__.py +3 -0
- agno/db/gcs_json/gcs_json_db.py +1001 -0
- agno/db/gcs_json/utils.py +194 -0
- agno/db/in_memory/__init__.py +3 -0
- agno/db/in_memory/in_memory_db.py +882 -0
- agno/db/in_memory/utils.py +172 -0
- agno/db/json/__init__.py +3 -0
- agno/db/json/json_db.py +1045 -0
- agno/db/json/utils.py +196 -0
- agno/db/migrations/v1_to_v2.py +162 -0
- agno/db/mongo/__init__.py +3 -0
- agno/db/mongo/mongo.py +1416 -0
- agno/db/mongo/schemas.py +77 -0
- agno/db/mongo/utils.py +204 -0
- agno/db/mysql/__init__.py +3 -0
- agno/db/mysql/mysql.py +1719 -0
- agno/db/mysql/schemas.py +124 -0
- agno/db/mysql/utils.py +297 -0
- agno/db/postgres/__init__.py +3 -0
- agno/db/postgres/postgres.py +1710 -0
- agno/db/postgres/schemas.py +124 -0
- agno/db/postgres/utils.py +280 -0
- agno/db/redis/__init__.py +3 -0
- agno/db/redis/redis.py +1367 -0
- agno/db/redis/schemas.py +109 -0
- agno/db/redis/utils.py +288 -0
- agno/db/schemas/__init__.py +3 -0
- agno/db/schemas/evals.py +33 -0
- agno/db/schemas/knowledge.py +40 -0
- agno/db/schemas/memory.py +46 -0
- agno/db/singlestore/__init__.py +3 -0
- agno/db/singlestore/schemas.py +116 -0
- agno/db/singlestore/singlestore.py +1712 -0
- agno/db/singlestore/utils.py +326 -0
- agno/db/sqlite/__init__.py +3 -0
- agno/db/sqlite/schemas.py +119 -0
- agno/db/sqlite/sqlite.py +1676 -0
- agno/db/sqlite/utils.py +268 -0
- agno/db/utils.py +88 -0
- agno/eval/__init__.py +14 -0
- agno/eval/accuracy.py +154 -48
- agno/eval/performance.py +88 -23
- agno/eval/reliability.py +73 -20
- agno/eval/utils.py +23 -13
- agno/integrations/discord/__init__.py +3 -0
- agno/{app → integrations}/discord/client.py +10 -10
- agno/knowledge/__init__.py +2 -2
- agno/{document → knowledge}/chunking/agentic.py +2 -2
- agno/{document → knowledge}/chunking/document.py +2 -2
- agno/{document → knowledge}/chunking/fixed.py +3 -3
- agno/{document → knowledge}/chunking/markdown.py +2 -2
- agno/{document → knowledge}/chunking/recursive.py +2 -2
- agno/{document → knowledge}/chunking/row.py +2 -2
- agno/knowledge/chunking/semantic.py +59 -0
- agno/knowledge/chunking/strategy.py +121 -0
- agno/knowledge/content.py +74 -0
- agno/knowledge/document/__init__.py +5 -0
- agno/{document → knowledge/document}/base.py +12 -2
- agno/knowledge/embedder/__init__.py +5 -0
- agno/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
- agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
- agno/{embedder → knowledge/embedder}/base.py +6 -0
- agno/{embedder → knowledge/embedder}/cohere.py +72 -1
- agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
- agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
- agno/{embedder → knowledge/embedder}/google.py +74 -1
- agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
- agno/{embedder → knowledge/embedder}/jina.py +48 -2
- agno/knowledge/embedder/langdb.py +22 -0
- agno/knowledge/embedder/mistral.py +139 -0
- agno/{embedder → knowledge/embedder}/nebius.py +1 -1
- agno/{embedder → knowledge/embedder}/ollama.py +54 -3
- agno/knowledge/embedder/openai.py +223 -0
- agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
- agno/{embedder → knowledge/embedder}/together.py +1 -1
- agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
- agno/knowledge/knowledge.py +1551 -0
- agno/knowledge/reader/__init__.py +7 -0
- agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
- agno/knowledge/reader/base.py +88 -0
- agno/{document → knowledge}/reader/csv_reader.py +47 -65
- agno/knowledge/reader/docx_reader.py +83 -0
- agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
- agno/{document → knowledge}/reader/json_reader.py +30 -9
- agno/{document → knowledge}/reader/markdown_reader.py +58 -9
- agno/{document → knowledge}/reader/pdf_reader.py +71 -126
- agno/knowledge/reader/reader_factory.py +268 -0
- agno/knowledge/reader/s3_reader.py +101 -0
- agno/{document → knowledge}/reader/text_reader.py +31 -10
- agno/knowledge/reader/url_reader.py +128 -0
- agno/knowledge/reader/web_search_reader.py +366 -0
- agno/{document → knowledge}/reader/website_reader.py +37 -10
- agno/knowledge/reader/wikipedia_reader.py +59 -0
- agno/knowledge/reader/youtube_reader.py +78 -0
- agno/knowledge/remote_content/remote_content.py +88 -0
- agno/{reranker → knowledge/reranker}/base.py +1 -1
- agno/{reranker → knowledge/reranker}/cohere.py +2 -2
- agno/{reranker → knowledge/reranker}/infinity.py +2 -2
- agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
- agno/knowledge/types.py +30 -0
- agno/knowledge/utils.py +169 -0
- agno/media.py +269 -268
- agno/memory/__init__.py +2 -10
- agno/memory/manager.py +1003 -148
- agno/models/aimlapi/__init__.py +2 -2
- agno/models/aimlapi/aimlapi.py +6 -6
- agno/models/anthropic/claude.py +128 -72
- agno/models/aws/bedrock.py +107 -175
- agno/models/aws/claude.py +64 -18
- agno/models/azure/ai_foundry.py +73 -23
- agno/models/base.py +346 -290
- agno/models/cerebras/cerebras.py +84 -27
- agno/models/cohere/chat.py +106 -98
- agno/models/google/gemini.py +105 -46
- agno/models/groq/groq.py +97 -35
- agno/models/huggingface/huggingface.py +92 -27
- agno/models/ibm/watsonx.py +72 -13
- agno/models/litellm/chat.py +85 -13
- agno/models/message.py +46 -151
- agno/models/meta/llama.py +85 -49
- agno/models/metrics.py +120 -0
- agno/models/mistral/mistral.py +90 -21
- agno/models/ollama/__init__.py +0 -2
- agno/models/ollama/chat.py +85 -47
- agno/models/openai/chat.py +154 -37
- agno/models/openai/responses.py +178 -105
- agno/models/perplexity/perplexity.py +26 -2
- agno/models/portkey/portkey.py +0 -7
- agno/models/response.py +15 -9
- agno/models/utils.py +20 -0
- agno/models/vercel/__init__.py +2 -2
- agno/models/vercel/v0.py +1 -1
- agno/models/vllm/__init__.py +2 -2
- agno/models/vllm/vllm.py +3 -3
- agno/models/xai/xai.py +10 -10
- agno/os/__init__.py +3 -0
- agno/os/app.py +497 -0
- agno/os/auth.py +47 -0
- agno/os/config.py +103 -0
- agno/os/interfaces/agui/__init__.py +3 -0
- agno/os/interfaces/agui/agui.py +31 -0
- agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
- agno/{app → os/interfaces}/agui/utils.py +65 -28
- agno/os/interfaces/base.py +21 -0
- agno/os/interfaces/slack/__init__.py +3 -0
- agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
- agno/os/interfaces/slack/slack.py +32 -0
- agno/os/interfaces/whatsapp/__init__.py +3 -0
- agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
- agno/os/interfaces/whatsapp/whatsapp.py +29 -0
- agno/os/mcp.py +235 -0
- agno/os/router.py +1400 -0
- agno/os/routers/__init__.py +3 -0
- agno/os/routers/evals/__init__.py +3 -0
- agno/os/routers/evals/evals.py +393 -0
- agno/os/routers/evals/schemas.py +142 -0
- agno/os/routers/evals/utils.py +161 -0
- agno/os/routers/knowledge/__init__.py +3 -0
- agno/os/routers/knowledge/knowledge.py +850 -0
- agno/os/routers/knowledge/schemas.py +118 -0
- agno/os/routers/memory/__init__.py +3 -0
- agno/os/routers/memory/memory.py +410 -0
- agno/os/routers/memory/schemas.py +58 -0
- agno/os/routers/metrics/__init__.py +3 -0
- agno/os/routers/metrics/metrics.py +178 -0
- agno/os/routers/metrics/schemas.py +47 -0
- agno/os/routers/session/__init__.py +3 -0
- agno/os/routers/session/session.py +536 -0
- agno/os/schema.py +945 -0
- agno/{app/playground → os}/settings.py +7 -15
- agno/os/utils.py +270 -0
- agno/reasoning/azure_ai_foundry.py +4 -4
- agno/reasoning/deepseek.py +4 -4
- agno/reasoning/default.py +6 -11
- agno/reasoning/groq.py +4 -4
- agno/reasoning/helpers.py +4 -6
- agno/reasoning/ollama.py +4 -4
- agno/reasoning/openai.py +4 -4
- agno/run/agent.py +633 -0
- agno/run/base.py +53 -77
- agno/run/cancel.py +81 -0
- agno/run/team.py +243 -96
- agno/run/workflow.py +550 -12
- agno/session/__init__.py +10 -0
- agno/session/agent.py +244 -0
- agno/session/summary.py +225 -0
- agno/session/team.py +262 -0
- agno/{storage/session/v2 → session}/workflow.py +47 -24
- agno/team/__init__.py +15 -16
- agno/team/team.py +3260 -4824
- agno/tools/agentql.py +14 -5
- agno/tools/airflow.py +9 -4
- agno/tools/api.py +7 -3
- agno/tools/apify.py +2 -46
- agno/tools/arxiv.py +8 -3
- agno/tools/aws_lambda.py +7 -5
- agno/tools/aws_ses.py +7 -1
- agno/tools/baidusearch.py +4 -1
- agno/tools/bitbucket.py +4 -4
- agno/tools/brandfetch.py +14 -11
- agno/tools/bravesearch.py +4 -1
- agno/tools/brightdata.py +43 -23
- agno/tools/browserbase.py +13 -4
- agno/tools/calcom.py +12 -10
- agno/tools/calculator.py +10 -27
- agno/tools/cartesia.py +20 -17
- agno/tools/{clickup_tool.py → clickup.py} +12 -25
- agno/tools/confluence.py +8 -8
- agno/tools/crawl4ai.py +7 -1
- agno/tools/csv_toolkit.py +9 -8
- agno/tools/dalle.py +22 -12
- agno/tools/daytona.py +13 -16
- agno/tools/decorator.py +6 -3
- agno/tools/desi_vocal.py +17 -8
- agno/tools/discord.py +11 -8
- agno/tools/docker.py +30 -42
- agno/tools/duckdb.py +34 -53
- agno/tools/duckduckgo.py +8 -7
- agno/tools/e2b.py +62 -62
- agno/tools/eleven_labs.py +36 -29
- agno/tools/email.py +4 -1
- agno/tools/evm.py +7 -1
- agno/tools/exa.py +19 -14
- agno/tools/fal.py +30 -30
- agno/tools/file.py +9 -8
- agno/tools/financial_datasets.py +25 -44
- agno/tools/firecrawl.py +17 -18
- agno/tools/function.py +127 -18
- agno/tools/giphy.py +23 -11
- agno/tools/github.py +48 -126
- agno/tools/gmail.py +45 -61
- agno/tools/google_bigquery.py +7 -6
- agno/tools/google_maps.py +11 -26
- agno/tools/googlesearch.py +7 -2
- agno/tools/googlesheets.py +21 -17
- agno/tools/hackernews.py +9 -5
- agno/tools/jina.py +5 -4
- agno/tools/jira.py +18 -9
- agno/tools/knowledge.py +31 -32
- agno/tools/linear.py +18 -33
- agno/tools/linkup.py +5 -1
- agno/tools/local_file_system.py +8 -5
- agno/tools/lumalab.py +32 -20
- agno/tools/mcp.py +1 -2
- agno/tools/mem0.py +18 -12
- agno/tools/memori.py +14 -10
- agno/tools/mlx_transcribe.py +3 -2
- agno/tools/models/azure_openai.py +33 -15
- agno/tools/models/gemini.py +59 -32
- agno/tools/models/groq.py +30 -23
- agno/tools/models/nebius.py +28 -12
- agno/tools/models_labs.py +40 -16
- agno/tools/moviepy_video.py +7 -6
- agno/tools/neo4j.py +10 -8
- agno/tools/newspaper.py +7 -2
- agno/tools/newspaper4k.py +8 -3
- agno/tools/openai.py +58 -32
- agno/tools/openbb.py +12 -11
- agno/tools/opencv.py +63 -47
- agno/tools/openweather.py +14 -12
- agno/tools/pandas.py +11 -3
- agno/tools/postgres.py +4 -12
- agno/tools/pubmed.py +4 -1
- agno/tools/python.py +9 -22
- agno/tools/reasoning.py +35 -27
- agno/tools/reddit.py +11 -26
- agno/tools/replicate.py +55 -42
- agno/tools/resend.py +4 -1
- agno/tools/scrapegraph.py +15 -14
- agno/tools/searxng.py +10 -23
- agno/tools/serpapi.py +6 -3
- agno/tools/serper.py +13 -4
- agno/tools/shell.py +9 -2
- agno/tools/slack.py +12 -11
- agno/tools/sleep.py +3 -2
- agno/tools/spider.py +24 -4
- agno/tools/sql.py +7 -6
- agno/tools/tavily.py +6 -4
- agno/tools/telegram.py +12 -4
- agno/tools/todoist.py +11 -31
- agno/tools/toolkit.py +1 -1
- agno/tools/trafilatura.py +22 -6
- agno/tools/trello.py +9 -22
- agno/tools/twilio.py +10 -3
- agno/tools/user_control_flow.py +6 -1
- agno/tools/valyu.py +34 -5
- agno/tools/visualization.py +19 -28
- agno/tools/webbrowser.py +4 -3
- agno/tools/webex.py +11 -7
- agno/tools/website.py +15 -46
- agno/tools/webtools.py +12 -4
- agno/tools/whatsapp.py +5 -9
- agno/tools/wikipedia.py +20 -13
- agno/tools/x.py +14 -13
- agno/tools/yfinance.py +13 -40
- agno/tools/youtube.py +26 -20
- agno/tools/zendesk.py +7 -2
- agno/tools/zep.py +10 -7
- agno/tools/zoom.py +10 -9
- agno/utils/common.py +1 -19
- agno/utils/events.py +100 -123
- agno/utils/gemini.py +1 -1
- agno/utils/knowledge.py +29 -0
- agno/utils/log.py +54 -4
- agno/utils/mcp.py +68 -10
- agno/utils/media.py +39 -0
- agno/utils/message.py +12 -1
- agno/utils/models/aws_claude.py +1 -1
- agno/utils/models/claude.py +6 -12
- agno/utils/models/cohere.py +1 -1
- agno/utils/models/mistral.py +8 -7
- agno/utils/models/schema_utils.py +3 -3
- agno/utils/models/watsonx.py +1 -1
- agno/utils/openai.py +1 -1
- agno/utils/pprint.py +33 -32
- agno/utils/print_response/agent.py +779 -0
- agno/utils/print_response/team.py +1669 -0
- agno/utils/print_response/workflow.py +1451 -0
- agno/utils/prompts.py +14 -14
- agno/utils/reasoning.py +87 -0
- agno/utils/response.py +42 -42
- agno/utils/streamlit.py +481 -0
- agno/utils/string.py +8 -22
- agno/utils/team.py +50 -0
- agno/utils/timer.py +2 -2
- agno/vectordb/base.py +33 -21
- agno/vectordb/cassandra/cassandra.py +287 -23
- agno/vectordb/chroma/chromadb.py +482 -59
- agno/vectordb/clickhouse/clickhousedb.py +270 -63
- agno/vectordb/couchbase/couchbase.py +309 -29
- agno/vectordb/lancedb/lance_db.py +360 -21
- agno/vectordb/langchaindb/__init__.py +5 -0
- agno/vectordb/langchaindb/langchaindb.py +145 -0
- agno/vectordb/lightrag/__init__.py +5 -0
- agno/vectordb/lightrag/lightrag.py +374 -0
- agno/vectordb/llamaindex/llamaindexdb.py +127 -0
- agno/vectordb/milvus/milvus.py +242 -32
- agno/vectordb/mongodb/mongodb.py +200 -24
- agno/vectordb/pgvector/pgvector.py +319 -37
- agno/vectordb/pineconedb/pineconedb.py +221 -27
- agno/vectordb/qdrant/qdrant.py +334 -14
- agno/vectordb/singlestore/singlestore.py +286 -29
- agno/vectordb/surrealdb/surrealdb.py +187 -7
- agno/vectordb/upstashdb/upstashdb.py +342 -26
- agno/vectordb/weaviate/weaviate.py +227 -165
- agno/workflow/__init__.py +17 -13
- agno/workflow/{v2/condition.py → condition.py} +135 -32
- agno/workflow/{v2/loop.py → loop.py} +115 -28
- agno/workflow/{v2/parallel.py → parallel.py} +138 -108
- agno/workflow/{v2/router.py → router.py} +133 -32
- agno/workflow/{v2/step.py → step.py} +207 -49
- agno/workflow/{v2/steps.py → steps.py} +147 -66
- agno/workflow/types.py +482 -0
- agno/workflow/workflow.py +2410 -696
- agno-2.0.0.dist-info/METADATA +494 -0
- agno-2.0.0.dist-info/RECORD +515 -0
- agno-2.0.0.dist-info/licenses/LICENSE +201 -0
- agno/agent/metrics.py +0 -110
- agno/api/app.py +0 -35
- agno/api/playground.py +0 -92
- agno/api/schemas/app.py +0 -12
- agno/api/schemas/playground.py +0 -22
- agno/api/schemas/user.py +0 -35
- agno/api/schemas/workspace.py +0 -46
- agno/api/user.py +0 -160
- agno/api/workflows.py +0 -33
- agno/api/workspace.py +0 -175
- agno/app/agui/__init__.py +0 -3
- agno/app/agui/app.py +0 -17
- agno/app/agui/sync_router.py +0 -120
- agno/app/base.py +0 -186
- agno/app/discord/__init__.py +0 -3
- agno/app/fastapi/__init__.py +0 -3
- agno/app/fastapi/app.py +0 -107
- agno/app/fastapi/async_router.py +0 -457
- agno/app/fastapi/sync_router.py +0 -448
- agno/app/playground/app.py +0 -228
- agno/app/playground/async_router.py +0 -1053
- agno/app/playground/deploy.py +0 -249
- agno/app/playground/operator.py +0 -183
- agno/app/playground/schemas.py +0 -223
- agno/app/playground/serve.py +0 -55
- agno/app/playground/sync_router.py +0 -1045
- agno/app/playground/utils.py +0 -46
- agno/app/settings.py +0 -15
- agno/app/slack/__init__.py +0 -3
- agno/app/slack/app.py +0 -19
- agno/app/slack/sync_router.py +0 -92
- agno/app/utils.py +0 -54
- agno/app/whatsapp/__init__.py +0 -3
- agno/app/whatsapp/app.py +0 -15
- agno/app/whatsapp/sync_router.py +0 -197
- agno/cli/auth_server.py +0 -249
- agno/cli/config.py +0 -274
- agno/cli/console.py +0 -88
- agno/cli/credentials.py +0 -23
- agno/cli/entrypoint.py +0 -571
- agno/cli/operator.py +0 -357
- agno/cli/settings.py +0 -96
- agno/cli/ws/ws_cli.py +0 -817
- agno/constants.py +0 -13
- agno/document/__init__.py +0 -5
- agno/document/chunking/semantic.py +0 -45
- agno/document/chunking/strategy.py +0 -31
- agno/document/reader/__init__.py +0 -5
- agno/document/reader/base.py +0 -47
- agno/document/reader/docx_reader.py +0 -60
- agno/document/reader/gcs/pdf_reader.py +0 -44
- agno/document/reader/s3/pdf_reader.py +0 -59
- agno/document/reader/s3/text_reader.py +0 -63
- agno/document/reader/url_reader.py +0 -59
- agno/document/reader/youtube_reader.py +0 -58
- agno/embedder/__init__.py +0 -5
- agno/embedder/langdb.py +0 -80
- agno/embedder/mistral.py +0 -82
- agno/embedder/openai.py +0 -78
- agno/file/__init__.py +0 -5
- agno/file/file.py +0 -16
- agno/file/local/csv.py +0 -32
- agno/file/local/txt.py +0 -19
- agno/infra/app.py +0 -240
- agno/infra/base.py +0 -144
- agno/infra/context.py +0 -20
- agno/infra/db_app.py +0 -52
- agno/infra/resource.py +0 -205
- agno/infra/resources.py +0 -55
- agno/knowledge/agent.py +0 -702
- agno/knowledge/arxiv.py +0 -33
- agno/knowledge/combined.py +0 -36
- agno/knowledge/csv.py +0 -144
- agno/knowledge/csv_url.py +0 -124
- agno/knowledge/document.py +0 -223
- agno/knowledge/docx.py +0 -137
- agno/knowledge/firecrawl.py +0 -34
- agno/knowledge/gcs/__init__.py +0 -0
- agno/knowledge/gcs/base.py +0 -39
- agno/knowledge/gcs/pdf.py +0 -125
- agno/knowledge/json.py +0 -137
- agno/knowledge/langchain.py +0 -71
- agno/knowledge/light_rag.py +0 -273
- agno/knowledge/llamaindex.py +0 -66
- agno/knowledge/markdown.py +0 -154
- agno/knowledge/pdf.py +0 -164
- agno/knowledge/pdf_bytes.py +0 -42
- agno/knowledge/pdf_url.py +0 -148
- agno/knowledge/s3/__init__.py +0 -0
- agno/knowledge/s3/base.py +0 -64
- agno/knowledge/s3/pdf.py +0 -33
- agno/knowledge/s3/text.py +0 -34
- agno/knowledge/text.py +0 -141
- agno/knowledge/url.py +0 -46
- agno/knowledge/website.py +0 -179
- agno/knowledge/wikipedia.py +0 -32
- agno/knowledge/youtube.py +0 -35
- agno/memory/agent.py +0 -423
- agno/memory/classifier.py +0 -104
- agno/memory/db/__init__.py +0 -5
- agno/memory/db/base.py +0 -42
- agno/memory/db/mongodb.py +0 -189
- agno/memory/db/postgres.py +0 -203
- agno/memory/db/sqlite.py +0 -193
- agno/memory/memory.py +0 -22
- agno/memory/row.py +0 -36
- agno/memory/summarizer.py +0 -201
- agno/memory/summary.py +0 -19
- agno/memory/team.py +0 -415
- agno/memory/v2/__init__.py +0 -2
- agno/memory/v2/db/__init__.py +0 -1
- agno/memory/v2/db/base.py +0 -42
- agno/memory/v2/db/firestore.py +0 -339
- agno/memory/v2/db/mongodb.py +0 -196
- agno/memory/v2/db/postgres.py +0 -214
- agno/memory/v2/db/redis.py +0 -187
- agno/memory/v2/db/schema.py +0 -54
- agno/memory/v2/db/sqlite.py +0 -209
- agno/memory/v2/manager.py +0 -437
- agno/memory/v2/memory.py +0 -1097
- agno/memory/v2/schema.py +0 -55
- agno/memory/v2/summarizer.py +0 -215
- agno/memory/workflow.py +0 -38
- agno/models/ollama/tools.py +0 -430
- agno/models/qwen/__init__.py +0 -5
- agno/playground/__init__.py +0 -10
- agno/playground/deploy.py +0 -3
- agno/playground/playground.py +0 -3
- agno/playground/serve.py +0 -3
- agno/playground/settings.py +0 -3
- agno/reranker/__init__.py +0 -0
- agno/run/response.py +0 -467
- agno/run/v2/__init__.py +0 -0
- agno/run/v2/workflow.py +0 -567
- agno/storage/__init__.py +0 -0
- agno/storage/agent/__init__.py +0 -0
- agno/storage/agent/dynamodb.py +0 -1
- agno/storage/agent/json.py +0 -1
- agno/storage/agent/mongodb.py +0 -1
- agno/storage/agent/postgres.py +0 -1
- agno/storage/agent/singlestore.py +0 -1
- agno/storage/agent/sqlite.py +0 -1
- agno/storage/agent/yaml.py +0 -1
- agno/storage/base.py +0 -60
- agno/storage/dynamodb.py +0 -673
- agno/storage/firestore.py +0 -297
- agno/storage/gcs_json.py +0 -261
- agno/storage/in_memory.py +0 -234
- agno/storage/json.py +0 -237
- agno/storage/mongodb.py +0 -328
- agno/storage/mysql.py +0 -685
- agno/storage/postgres.py +0 -682
- agno/storage/redis.py +0 -336
- agno/storage/session/__init__.py +0 -16
- agno/storage/session/agent.py +0 -64
- agno/storage/session/team.py +0 -63
- agno/storage/session/v2/__init__.py +0 -5
- agno/storage/session/workflow.py +0 -61
- agno/storage/singlestore.py +0 -606
- agno/storage/sqlite.py +0 -646
- agno/storage/workflow/__init__.py +0 -0
- agno/storage/workflow/mongodb.py +0 -1
- agno/storage/workflow/postgres.py +0 -1
- agno/storage/workflow/sqlite.py +0 -1
- agno/storage/yaml.py +0 -241
- agno/tools/thinking.py +0 -73
- agno/utils/defaults.py +0 -57
- agno/utils/filesystem.py +0 -39
- agno/utils/git.py +0 -52
- agno/utils/json_io.py +0 -30
- agno/utils/load_env.py +0 -19
- agno/utils/py_io.py +0 -19
- agno/utils/pyproject.py +0 -18
- agno/utils/resource_filter.py +0 -31
- agno/workflow/v2/__init__.py +0 -21
- agno/workflow/v2/types.py +0 -357
- agno/workflow/v2/workflow.py +0 -3313
- agno/workspace/__init__.py +0 -0
- agno/workspace/config.py +0 -325
- agno/workspace/enums.py +0 -6
- agno/workspace/helpers.py +0 -52
- agno/workspace/operator.py +0 -757
- agno/workspace/settings.py +0 -158
- agno-1.8.2.dist-info/METADATA +0 -982
- agno-1.8.2.dist-info/RECORD +0 -566
- agno-1.8.2.dist-info/entry_points.txt +0 -3
- agno-1.8.2.dist-info/licenses/LICENSE +0 -375
- /agno/{app → db/migrations}/__init__.py +0 -0
- /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
- /agno/{cli → integrations}/__init__.py +0 -0
- /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
- /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
- /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
- /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
- /agno/{app → os/interfaces}/slack/security.py +0 -0
- /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
- /agno/{file/local → utils/print_response}/__init__.py +0 -0
- /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
- {agno-1.8.2.dist-info → agno-2.0.0.dist-info}/WHEEL +0 -0
- {agno-1.8.2.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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
104
|
+
if all or enable_search:
|
|
100
105
|
tools.append(self.search_exa)
|
|
101
|
-
if
|
|
106
|
+
if all or enable_get_contents:
|
|
102
107
|
tools.append(self.get_contents)
|
|
103
|
-
if
|
|
108
|
+
if all or enable_find_similar:
|
|
104
109
|
tools.append(self.find_similar)
|
|
105
|
-
if
|
|
110
|
+
if all or enable_answer:
|
|
106
111
|
tools.append(self.exa_answer)
|
|
107
|
-
if
|
|
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
|
|
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("
|
|
32
|
+
self.api_key = api_key or getenv("FAL_API_KEY")
|
|
29
33
|
if not self.api_key:
|
|
30
|
-
logger.error("
|
|
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
|
-
|
|
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) ->
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
url=url,
|
|
72
|
-
)
|
|
75
|
+
image_artifact = Image(
|
|
76
|
+
id=media_id,
|
|
77
|
+
url=url,
|
|
73
78
|
)
|
|
74
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
url=url,
|
|
81
|
-
)
|
|
82
|
+
video_artifact = Video(
|
|
83
|
+
id=media_id,
|
|
84
|
+
url=url,
|
|
82
85
|
)
|
|
83
|
-
|
|
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) ->
|
|
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
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
23
|
+
if all or enable_save_file:
|
|
23
24
|
tools.append(self.save_file)
|
|
24
|
-
if
|
|
25
|
+
if all or enable_read_file:
|
|
25
26
|
tools.append(self.read_file)
|
|
26
|
-
if
|
|
27
|
+
if all or enable_list_files:
|
|
27
28
|
tools.append(self.list_files)
|
|
28
|
-
if
|
|
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)
|
agno/tools/financial_datasets.py
CHANGED
|
@@ -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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
@@ -25,26 +25,32 @@ class CustomJSONEncoder(json.JSONEncoder):
|
|
|
25
25
|
class FirecrawlTools(Toolkit):
|
|
26
26
|
"""
|
|
27
27
|
Firecrawl is a tool for scraping and crawling websites.
|
|
28
|
+
|
|
28
29
|
Args:
|
|
29
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.
|
|
30
36
|
formats (Optional[List[str]]): The formats to use for the Firecrawl app.
|
|
31
37
|
limit (int): The maximum number of pages to crawl.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
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.
|
|
35
40
|
api_url (Optional[str]): The API URL to use for the Firecrawl app.
|
|
36
41
|
"""
|
|
37
42
|
|
|
38
43
|
def __init__(
|
|
39
44
|
self,
|
|
40
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,
|
|
41
51
|
formats: Optional[List[str]] = None,
|
|
42
52
|
limit: int = 10,
|
|
43
53
|
poll_interval: int = 30,
|
|
44
|
-
scrape: bool = True,
|
|
45
|
-
crawl: bool = False,
|
|
46
|
-
mapping: bool = False,
|
|
47
|
-
search: bool = False,
|
|
48
54
|
search_params: Optional[Dict[str, Any]] = None,
|
|
49
55
|
api_url: Optional[str] = "https://api.firecrawl.dev",
|
|
50
56
|
**kwargs,
|
|
@@ -59,21 +65,14 @@ class FirecrawlTools(Toolkit):
|
|
|
59
65
|
self.app: FirecrawlApp = FirecrawlApp(api_key=self.api_key, api_url=api_url)
|
|
60
66
|
self.search_params = search_params
|
|
61
67
|
|
|
62
|
-
# Start with scrape by default. But if crawl is set, then set scrape to False.
|
|
63
|
-
if crawl:
|
|
64
|
-
scrape = False
|
|
65
|
-
mapping = False
|
|
66
|
-
elif not scrape:
|
|
67
|
-
crawl = True
|
|
68
|
-
|
|
69
68
|
tools: List[Any] = []
|
|
70
|
-
if
|
|
69
|
+
if all or enable_scrape:
|
|
71
70
|
tools.append(self.scrape_website)
|
|
72
|
-
if
|
|
71
|
+
if all or enable_crawl:
|
|
73
72
|
tools.append(self.crawl_website)
|
|
74
|
-
if
|
|
73
|
+
if all or enable_mapping:
|
|
75
74
|
tools.append(self.map_website)
|
|
76
|
-
if
|
|
75
|
+
if all or enable_search:
|
|
77
76
|
tools.append(self.search)
|
|
78
77
|
|
|
79
78
|
super().__init__(name="firecrawl_tools", tools=tools, **kwargs)
|