agno 2.4.4__tar.gz → 2.4.5__tar.gz
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-2.4.4 → agno-2.4.5}/PKG-INFO +4 -1
- {agno-2.4.4 → agno-2.4.5}/agno/agent/agent.py +45 -38
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/knowledge.py +8 -10
- {agno-2.4.4 → agno-2.4.5}/agno/team/team.py +27 -20
- agno-2.4.5/agno/tools/seltz.py +134 -0
- {agno-2.4.4 → agno-2.4.5}/agno.egg-info/PKG-INFO +4 -1
- {agno-2.4.4 → agno-2.4.5}/agno.egg-info/SOURCES.txt +1 -0
- {agno-2.4.4 → agno-2.4.5}/agno.egg-info/requires.txt +4 -0
- {agno-2.4.4 → agno-2.4.5}/pyproject.toml +4 -1
- {agno-2.4.4 → agno-2.4.5}/LICENSE +0 -0
- {agno-2.4.4 → agno-2.4.5}/README.md +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/agent/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/agent/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/api.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/os.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/routes.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/os.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/response.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/schemas/workflows.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/settings.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/api/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/client.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/a2a/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/client/os.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/compression/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/compression/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/culture/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/culture/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/async_postgres/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/dynamo.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/dynamo/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/firestore.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/firestore/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/gcs_json_db.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/gcs_json/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/in_memory/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/json/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/json/json_db.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/json/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/v1_to_v2.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/versions/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/migrations/versions/v2_3_0.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/async_mongo.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/mongo.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mongo/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/async_mysql.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/mysql.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/mysql/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/async_postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/postgres/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/redis/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/redis/redis.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/redis/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/redis/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/culture.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/schemas/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/singlestore.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/singlestore/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/async_sqlite.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/sqlite.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/sqlite/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/models.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/queries.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/surrealdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/surrealdb/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/db/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/debug.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/accuracy.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/agent_as_judge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/performance.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/reliability.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/eval/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/exceptions.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/filters.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/guardrails/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/guardrails/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/guardrails/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/guardrails/pii.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/guardrails/prompt_injection.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/hooks/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/hooks/decorator.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/integrations/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/integrations/discord/client.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/agentic.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/code.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/document.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/fixed.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/markdown.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/recursive.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/row.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/semantic.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/chunking/strategy.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/content.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/document/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/vllm.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/filesystem.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/protocol.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/excel_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/pptx_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/reader_factory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/tavily_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/text_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/utils/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/utils/spreadsheet.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/web_search_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/config.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/types.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/knowledge/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/config.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/curate.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/machine.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/decision_log.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/entity_memory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/learned_knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/protocol.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/session_context.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/user_memory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/stores/user_profile.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/learn/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/media.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/summarize.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/memory/strategies/types.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/aimlapi/aimlapi.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/anthropic/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/aws/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/aws/bedrock.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/aws/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/azure/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/cerebras.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cerebras/cerebras_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cohere/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cohere/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cometapi/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/cometapi/cometapi.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/deepinfra/deepinfra.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/defaults.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/fireworks/fireworks.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/google/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/google/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/google/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/groq/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/groq/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/huggingface/huggingface.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/ibm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/ibm/watsonx.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/internlm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/internlm/internlm.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/langdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/langdb/langdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/litellm/litellm_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/llama_cpp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/llama_cpp/llama_cpp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/message.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/meta/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/meta/llama.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/meta/llama_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/mistral/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/mistral/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/moonshot/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/moonshot/moonshot.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/n1n/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/n1n/n1n.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nebius/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nebius/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nexus/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nexus/nexus.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/nvidia/nvidia.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/ollama/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openai/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openai/like.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openai/open_responses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openai/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/openrouter.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/openrouter/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/perplexity/perplexity.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/portkey/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/portkey/portkey.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/requesty/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/requesty/requesty.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/response.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/sambanova/sambanova.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/siliconflow/siliconflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/together/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/together/together.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vercel/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vercel/v0.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vertexai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vertexai/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vllm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/vllm/vllm.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/xai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/models/xai/xai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/app.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/auth.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/config.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/a2a.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/a2a/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/agui/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/managers.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/jwt.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/middleware/trailing_slash.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/agents/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/components/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/components/components.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/database.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/evals/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/health.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/home.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/knowledge/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/memory/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/metrics/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/registry/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/registry/registry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/session/session.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/teams/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/traces/traces.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/routers/workflows/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/scopes.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/settings.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/os/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/py.typed +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/anthropic.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/deepseek.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/default.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/helpers.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/ollama.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/step.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/reasoning/vertexai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/registry/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/registry/registry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/remote/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/remote/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/cancel.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/in_memory_cancellation_manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/cancellation_management/redis_cancellation_manager.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/messages.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/requirement.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/run/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/session/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/session/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/session/summary.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/session/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/session/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/agent_skills.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/errors.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/loaders/local.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/skill.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/skills/validator.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/table.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/team/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/team/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/agentql.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/airflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/api.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/apify.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/arxiv.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/aws_lambda.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/aws_ses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/baidusearch.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/bitbucket.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/brandfetch.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/bravesearch.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/brightdata.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/browserbase.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/calcom.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/calculator.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/cartesia.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/clickup.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/confluence.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/crawl4ai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/dalle.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/daytona.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/decorator.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/desi_vocal.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/discord.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/docker.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/duckdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/duckduckgo.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/e2b.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/eleven_labs.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/email.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/evm.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/exa.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/fal.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/file.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/file_generation.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/financial_datasets.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/firecrawl.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/function.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/giphy.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/github.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/gmail.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/google_bigquery.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/google_drive.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/google_maps.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/googlecalendar.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/googlesheets.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/hackernews.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/jina.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/jira.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/linear.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/linkup.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/local_file_system.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/lumalab.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/multi_mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp/params.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mcp_toolbox.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mem0.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/morph.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/models_labs.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/moviepy_video.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/nano_banana.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/neo4j.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/newspaper.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/newspaper4k.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/notion.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/openbb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/opencv.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/openweather.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/oxylabs.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/pandas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/parallel.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/pubmed.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/python.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/reasoning.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/reddit.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/redshift.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/replicate.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/resend.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/scrapegraph.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/searxng.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/serpapi.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/serper.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/shell.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/shopify.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/slack.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/sleep.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/spider.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/spotify.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/sql.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/streamlit/components.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/tavily.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/telegram.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/todoist.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/tool_registry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/toolkit.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/trafilatura.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/trello.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/twilio.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/unsplash.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/user_control_flow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/valyu.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/visualization.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/webbrowser.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/webex.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/websearch.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/website.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/webtools.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/wikipedia.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/x.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/yfinance.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/youtube.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/zendesk.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/zep.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tools/zoom.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tracing/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tracing/exporter.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tracing/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/tracing/setup.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/audio.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/certs.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/code_execution.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/common.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/cryptography.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/dttm.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/enum.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/env.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/events.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/format_str.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/functions.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/hooks.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/http.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/json_schema.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/location.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/log.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/media.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/merge_dict.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/message.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/llama.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/models/watsonx.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/os.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/pickle.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/pprint.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/prompts.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/reasoning.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/response.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/response_iterator.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/safe_formatter.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/serialize.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/shell.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/streamlit.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/string.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/team.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/timer.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/tokens.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/tools.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/web.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/utils/yaml_io.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/base.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/distance.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/redis/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/redis/redisdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/search.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/condition.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/loop.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/parallel.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/router.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/step.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/steps.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/types.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno/workflow/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.4.4 → agno-2.4.5}/agno.egg-info/top_level.txt +0 -0
- {agno-2.4.4 → agno-2.4.5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.5
|
|
4
4
|
Summary: Agno: a lightweight library for building Multi-Agent Systems
|
|
5
5
|
Author-email: Ashpreet Bedi <ashpreet@agno.com>
|
|
6
6
|
Project-URL: homepage, https://agno.com
|
|
@@ -132,6 +132,8 @@ Provides-Extra: evm
|
|
|
132
132
|
Requires-Dist: web3; extra == "evm"
|
|
133
133
|
Provides-Extra: exa
|
|
134
134
|
Requires-Dist: exa_py; extra == "exa"
|
|
135
|
+
Provides-Extra: seltz
|
|
136
|
+
Requires-Dist: seltz; extra == "seltz"
|
|
135
137
|
Provides-Extra: fal
|
|
136
138
|
Requires-Dist: fal_client; extra == "fal"
|
|
137
139
|
Provides-Extra: firecrawl
|
|
@@ -308,6 +310,7 @@ Provides-Extra: tools
|
|
|
308
310
|
Requires-Dist: agno[apify]; extra == "tools"
|
|
309
311
|
Requires-Dist: agno[arxiv]; extra == "tools"
|
|
310
312
|
Requires-Dist: agno[exa]; extra == "tools"
|
|
313
|
+
Requires-Dist: agno[seltz]; extra == "tools"
|
|
311
314
|
Requires-Dist: agno[cartesia]; extra == "tools"
|
|
312
315
|
Requires-Dist: agno[ddg]; extra == "tools"
|
|
313
316
|
Requires-Dist: agno[duckdb]; extra == "tools"
|
|
@@ -320,6 +320,8 @@ class Agent:
|
|
|
320
320
|
# Add a tool that allows the Model to search the knowledge base (aka Agentic RAG)
|
|
321
321
|
# Added only if knowledge is provided.
|
|
322
322
|
search_knowledge: bool = True
|
|
323
|
+
# If True, add search_knowledge instructions to the system prompt
|
|
324
|
+
add_search_knowledge_instructions: bool = True
|
|
323
325
|
# Add a tool that allows the Agent to update Knowledge.
|
|
324
326
|
update_knowledge: bool = False
|
|
325
327
|
# Add a tool that allows the Model to get the tool call history.
|
|
@@ -524,6 +526,7 @@ class Agent:
|
|
|
524
526
|
reasoning_max_steps: int = 10,
|
|
525
527
|
read_chat_history: bool = False,
|
|
526
528
|
search_knowledge: bool = True,
|
|
529
|
+
add_search_knowledge_instructions: bool = True,
|
|
527
530
|
update_knowledge: bool = False,
|
|
528
531
|
read_tool_call_history: bool = False,
|
|
529
532
|
send_media_to_model: bool = True,
|
|
@@ -661,6 +664,7 @@ class Agent:
|
|
|
661
664
|
|
|
662
665
|
self.read_chat_history = read_chat_history
|
|
663
666
|
self.search_knowledge = search_knowledge
|
|
667
|
+
self.add_search_knowledge_instructions = add_search_knowledge_instructions
|
|
664
668
|
self.update_knowledge = update_knowledge
|
|
665
669
|
self.read_tool_call_history = read_tool_call_history
|
|
666
670
|
self.send_media_to_model = send_media_to_model
|
|
@@ -7431,6 +7435,10 @@ class Agent:
|
|
|
7431
7435
|
config["enable_agentic_knowledge_filters"] = self.enable_agentic_knowledge_filters
|
|
7432
7436
|
if self.add_knowledge_to_context:
|
|
7433
7437
|
config["add_knowledge_to_context"] = self.add_knowledge_to_context
|
|
7438
|
+
if not self.search_knowledge:
|
|
7439
|
+
config["search_knowledge"] = self.search_knowledge
|
|
7440
|
+
if self.add_search_knowledge_instructions:
|
|
7441
|
+
config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
|
|
7434
7442
|
# Skip knowledge_retriever as it's a callable
|
|
7435
7443
|
if self.references_format != "json":
|
|
7436
7444
|
config["references_format"] = self.references_format
|
|
@@ -7481,8 +7489,6 @@ class Agent:
|
|
|
7481
7489
|
# --- Default tools settings ---
|
|
7482
7490
|
if self.read_chat_history:
|
|
7483
7491
|
config["read_chat_history"] = self.read_chat_history
|
|
7484
|
-
if not self.search_knowledge:
|
|
7485
|
-
config["search_knowledge"] = self.search_knowledge
|
|
7486
7492
|
if self.update_knowledge:
|
|
7487
7493
|
config["update_knowledge"] = self.update_knowledge
|
|
7488
7494
|
if self.read_tool_call_history:
|
|
@@ -7806,6 +7812,7 @@ class Agent:
|
|
|
7806
7812
|
# --- Default tools settings ---
|
|
7807
7813
|
read_chat_history=config.get("read_chat_history", False),
|
|
7808
7814
|
search_knowledge=config.get("search_knowledge", True),
|
|
7815
|
+
add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
|
|
7809
7816
|
update_knowledge=config.get("update_knowledge", False),
|
|
7810
7817
|
read_tool_call_history=config.get("read_tool_call_history", False),
|
|
7811
7818
|
send_media_to_model=config.get("send_media_to_model", True),
|
|
@@ -8859,16 +8866,6 @@ class Agent:
|
|
|
8859
8866
|
if self.name is not None and self.add_name_to_context:
|
|
8860
8867
|
additional_information.append(f"Your name is: {self.name}.")
|
|
8861
8868
|
|
|
8862
|
-
# 3.2.5 Add knowledge context using protocol's build_context
|
|
8863
|
-
if self.knowledge is not None:
|
|
8864
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
8865
|
-
if callable(build_context_fn):
|
|
8866
|
-
knowledge_context = build_context_fn(
|
|
8867
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
8868
|
-
)
|
|
8869
|
-
if knowledge_context:
|
|
8870
|
-
additional_information.append(knowledge_context)
|
|
8871
|
-
|
|
8872
8869
|
# 3.3 Build the default system message for the Agent.
|
|
8873
8870
|
system_message_content: str = ""
|
|
8874
8871
|
# 3.3.1 First add the Agent description if provided
|
|
@@ -9045,12 +9042,22 @@ class Agent:
|
|
|
9045
9042
|
if learning_context:
|
|
9046
9043
|
system_message_content += learning_context + "\n"
|
|
9047
9044
|
|
|
9048
|
-
# 3.3.13
|
|
9045
|
+
# 3.3.13 then add search_knowledge instructions to the system prompt
|
|
9046
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
9047
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9048
|
+
if callable(build_context_fn):
|
|
9049
|
+
knowledge_context = build_context_fn(
|
|
9050
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9051
|
+
)
|
|
9052
|
+
if knowledge_context is not None:
|
|
9053
|
+
system_message_content += knowledge_context + "\n"
|
|
9054
|
+
|
|
9055
|
+
# 3.3.14 Add the system message from the Model
|
|
9049
9056
|
system_message_from_model = self.model.get_system_message_for_model(tools)
|
|
9050
9057
|
if system_message_from_model is not None:
|
|
9051
9058
|
system_message_content += system_message_from_model
|
|
9052
9059
|
|
|
9053
|
-
# 3.3.
|
|
9060
|
+
# 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
|
|
9054
9061
|
# or if use_json_mode is True
|
|
9055
9062
|
if (
|
|
9056
9063
|
output_schema is not None
|
|
@@ -9062,11 +9069,11 @@ class Agent:
|
|
|
9062
9069
|
):
|
|
9063
9070
|
system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
|
|
9064
9071
|
|
|
9065
|
-
# 3.3.
|
|
9072
|
+
# 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
|
|
9066
9073
|
if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
|
|
9067
9074
|
system_message_content += f"{get_response_model_format_prompt(output_schema)}"
|
|
9068
9075
|
|
|
9069
|
-
# 3.3.
|
|
9076
|
+
# 3.3.17 Add the session state to the system message
|
|
9070
9077
|
if add_session_state_to_context and session_state is not None:
|
|
9071
9078
|
system_message_content += f"\n<session_state>\n{session_state}\n</session_state>\n\n"
|
|
9072
9079
|
|
|
@@ -9196,24 +9203,6 @@ class Agent:
|
|
|
9196
9203
|
if self.name is not None and self.add_name_to_context:
|
|
9197
9204
|
additional_information.append(f"Your name is: {self.name}.")
|
|
9198
9205
|
|
|
9199
|
-
# 3.2.5 Add knowledge context using protocol's build_context (async)
|
|
9200
|
-
if self.knowledge is not None:
|
|
9201
|
-
# Prefer async version if available for async databases
|
|
9202
|
-
abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
|
|
9203
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9204
|
-
if callable(abuild_context_fn):
|
|
9205
|
-
knowledge_context = await abuild_context_fn(
|
|
9206
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9207
|
-
)
|
|
9208
|
-
if knowledge_context:
|
|
9209
|
-
additional_information.append(knowledge_context)
|
|
9210
|
-
elif callable(build_context_fn):
|
|
9211
|
-
knowledge_context = build_context_fn(
|
|
9212
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9213
|
-
)
|
|
9214
|
-
if knowledge_context:
|
|
9215
|
-
additional_information.append(knowledge_context)
|
|
9216
|
-
|
|
9217
9206
|
# 3.3 Build the default system message for the Agent.
|
|
9218
9207
|
system_message_content: str = ""
|
|
9219
9208
|
# 3.3.1 First add the Agent description if provided
|
|
@@ -9393,12 +9382,30 @@ class Agent:
|
|
|
9393
9382
|
if learning_context:
|
|
9394
9383
|
system_message_content += learning_context + "\n"
|
|
9395
9384
|
|
|
9396
|
-
# 3.3.13
|
|
9385
|
+
# 3.3.13 then add search_knowledge instructions to the system prompt
|
|
9386
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
9387
|
+
# Prefer async version if available for async databases
|
|
9388
|
+
abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
|
|
9389
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9390
|
+
if callable(abuild_context_fn):
|
|
9391
|
+
knowledge_context = await abuild_context_fn(
|
|
9392
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9393
|
+
)
|
|
9394
|
+
if knowledge_context is not None:
|
|
9395
|
+
system_message_content += knowledge_context + "\n"
|
|
9396
|
+
elif callable(build_context_fn):
|
|
9397
|
+
knowledge_context = build_context_fn(
|
|
9398
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9399
|
+
)
|
|
9400
|
+
if knowledge_context is not None:
|
|
9401
|
+
system_message_content += knowledge_context + "\n"
|
|
9402
|
+
|
|
9403
|
+
# 3.3.14 Add the system message from the Model
|
|
9397
9404
|
system_message_from_model = self.model.get_system_message_for_model(tools)
|
|
9398
9405
|
if system_message_from_model is not None:
|
|
9399
9406
|
system_message_content += system_message_from_model
|
|
9400
9407
|
|
|
9401
|
-
# 3.3.
|
|
9408
|
+
# 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
|
|
9402
9409
|
# or if use_json_mode is True
|
|
9403
9410
|
if (
|
|
9404
9411
|
output_schema is not None
|
|
@@ -9410,11 +9417,11 @@ class Agent:
|
|
|
9410
9417
|
):
|
|
9411
9418
|
system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
|
|
9412
9419
|
|
|
9413
|
-
# 3.3.
|
|
9420
|
+
# 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
|
|
9414
9421
|
if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
|
|
9415
9422
|
system_message_content += f"{get_response_model_format_prompt(output_schema)}"
|
|
9416
9423
|
|
|
9417
|
-
# 3.3.
|
|
9424
|
+
# 3.3.17 Add the session state to the system message
|
|
9418
9425
|
if add_session_state_to_context and session_state is not None:
|
|
9419
9426
|
system_message_content += self._get_formatted_session_state_for_system_message(session_state)
|
|
9420
9427
|
|
|
@@ -4451,12 +4451,10 @@ class Knowledge:
|
|
|
4451
4451
|
# ========================================================================
|
|
4452
4452
|
|
|
4453
4453
|
# Shared context strings
|
|
4454
|
-
|
|
4455
|
-
"You have
|
|
4456
|
-
"
|
|
4457
|
-
"
|
|
4458
|
-
"If the user question is ambiguous (e.g., 'the candidate') do NOT ask clarifying questions first—search the "
|
|
4459
|
-
"knowledge base to identify the relevant documents.\n"
|
|
4454
|
+
_SEARCH_KNOWLEDGE_INSTRUCTIONS = (
|
|
4455
|
+
"You have a knowledge base you can search using the search_knowledge_base tool. "
|
|
4456
|
+
"Search before answering questions—don't assume you know the answer. "
|
|
4457
|
+
"For ambiguous questions, search first rather than asking for clarification."
|
|
4460
4458
|
)
|
|
4461
4459
|
|
|
4462
4460
|
_AGENTIC_FILTER_INSTRUCTION_TEMPLATE = """
|
|
@@ -4499,7 +4497,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
|
|
|
4499
4497
|
Returns:
|
|
4500
4498
|
Context string to add to system prompt.
|
|
4501
4499
|
"""
|
|
4502
|
-
context_parts: List[str] = [self.
|
|
4500
|
+
context_parts: List[str] = [self._SEARCH_KNOWLEDGE_INSTRUCTIONS]
|
|
4503
4501
|
|
|
4504
4502
|
# Add filter instructions if agentic filters are enabled
|
|
4505
4503
|
if enable_agentic_filters:
|
|
@@ -4507,7 +4505,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
|
|
|
4507
4505
|
if valid_filters:
|
|
4508
4506
|
context_parts.append(self._get_agentic_filter_instructions(valid_filters))
|
|
4509
4507
|
|
|
4510
|
-
return "\n".join(context_parts)
|
|
4508
|
+
return "<knowledge_base>\n" + "\n".join(context_parts) + "\n</knowledge_base>"
|
|
4511
4509
|
|
|
4512
4510
|
async def abuild_context(
|
|
4513
4511
|
self,
|
|
@@ -4526,7 +4524,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
|
|
|
4526
4524
|
Returns:
|
|
4527
4525
|
Context string to add to system prompt.
|
|
4528
4526
|
"""
|
|
4529
|
-
context_parts: List[str] = [self.
|
|
4527
|
+
context_parts: List[str] = [self._SEARCH_KNOWLEDGE_INSTRUCTIONS]
|
|
4530
4528
|
|
|
4531
4529
|
# Add filter instructions if agentic filters are enabled
|
|
4532
4530
|
if enable_agentic_filters:
|
|
@@ -4534,7 +4532,7 @@ Make sure to pass the filters as [Dict[str: Any]] to the tool. FOLLOW THIS STRUC
|
|
|
4534
4532
|
if valid_filters:
|
|
4535
4533
|
context_parts.append(self._get_agentic_filter_instructions(valid_filters))
|
|
4536
4534
|
|
|
4537
|
-
return "\n".join(context_parts)
|
|
4535
|
+
return "<knowledge_base>\n" + "\n".join(context_parts) + "\n</knowledge_base>"
|
|
4538
4536
|
|
|
4539
4537
|
def get_tools(
|
|
4540
4538
|
self,
|
|
@@ -343,6 +343,8 @@ class Team:
|
|
|
343
343
|
# Add a tool to search the knowledge base (aka Agentic RAG)
|
|
344
344
|
# Only added if knowledge is provided.
|
|
345
345
|
search_knowledge: bool = True
|
|
346
|
+
# If True, add search_knowledge instructions to the system prompt
|
|
347
|
+
add_search_knowledge_instructions: bool = True
|
|
346
348
|
|
|
347
349
|
# If False, media (images, videos, audio, files) is only available to tools and not sent to the LLM
|
|
348
350
|
send_media_to_model: bool = True
|
|
@@ -530,6 +532,7 @@ class Team:
|
|
|
530
532
|
share_member_interactions: bool = False,
|
|
531
533
|
get_member_information_tool: bool = False,
|
|
532
534
|
search_knowledge: bool = True,
|
|
535
|
+
add_search_knowledge_instructions: bool = True,
|
|
533
536
|
read_chat_history: bool = False,
|
|
534
537
|
store_media: bool = True,
|
|
535
538
|
store_tool_messages: bool = True,
|
|
@@ -653,6 +656,7 @@ class Team:
|
|
|
653
656
|
self.share_member_interactions = share_member_interactions
|
|
654
657
|
self.get_member_information_tool = get_member_information_tool
|
|
655
658
|
self.search_knowledge = search_knowledge
|
|
659
|
+
self.add_search_knowledge_instructions = add_search_knowledge_instructions
|
|
656
660
|
self.read_chat_history = read_chat_history
|
|
657
661
|
|
|
658
662
|
self.store_media = store_media
|
|
@@ -5675,16 +5679,6 @@ class Team:
|
|
|
5675
5679
|
if self.name is not None and self.add_name_to_context:
|
|
5676
5680
|
additional_information.append(f"Your name is: {self.name}.")
|
|
5677
5681
|
|
|
5678
|
-
# Add knowledge context using protocol's build_context
|
|
5679
|
-
if self.knowledge is not None:
|
|
5680
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
5681
|
-
if callable(build_context_fn):
|
|
5682
|
-
knowledge_context = build_context_fn(
|
|
5683
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
5684
|
-
)
|
|
5685
|
-
if knowledge_context:
|
|
5686
|
-
additional_information.append(knowledge_context)
|
|
5687
|
-
|
|
5688
5682
|
# 2 Build the default system message for the Agent.
|
|
5689
5683
|
system_message_content: str = ""
|
|
5690
5684
|
if self.members is not None and len(self.members) > 0:
|
|
@@ -5788,6 +5782,16 @@ class Team:
|
|
|
5788
5782
|
"You should ALWAYS prefer information from this conversation over the past summary.\n\n"
|
|
5789
5783
|
)
|
|
5790
5784
|
|
|
5785
|
+
# Add search_knowledge instructions to the system prompt
|
|
5786
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
5787
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
5788
|
+
if callable(build_context_fn):
|
|
5789
|
+
knowledge_context = build_context_fn(
|
|
5790
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
5791
|
+
)
|
|
5792
|
+
if knowledge_context:
|
|
5793
|
+
system_message_content += knowledge_context + "\n"
|
|
5794
|
+
|
|
5791
5795
|
if self.description is not None:
|
|
5792
5796
|
system_message_content += f"<description>\n{self.description}\n</description>\n\n"
|
|
5793
5797
|
|
|
@@ -5971,16 +5975,6 @@ class Team:
|
|
|
5971
5975
|
if self.name is not None and self.add_name_to_context:
|
|
5972
5976
|
additional_information.append(f"Your name is: {self.name}.")
|
|
5973
5977
|
|
|
5974
|
-
# Add knowledge context using protocol's build_context
|
|
5975
|
-
if self.knowledge is not None:
|
|
5976
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
5977
|
-
if callable(build_context_fn):
|
|
5978
|
-
knowledge_context = build_context_fn(
|
|
5979
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
5980
|
-
)
|
|
5981
|
-
if knowledge_context:
|
|
5982
|
-
additional_information.append(knowledge_context)
|
|
5983
|
-
|
|
5984
5978
|
# 2 Build the default system message for the Agent.
|
|
5985
5979
|
system_message_content: str = ""
|
|
5986
5980
|
system_message_content += "You are the leader of a team and sub-teams of AI Agents.\n"
|
|
@@ -6089,6 +6083,16 @@ class Team:
|
|
|
6089
6083
|
"You should ALWAYS prefer information from this conversation over the past summary.\n\n"
|
|
6090
6084
|
)
|
|
6091
6085
|
|
|
6086
|
+
# Add search_knowledge instructions to the system prompt
|
|
6087
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
6088
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
6089
|
+
if callable(build_context_fn):
|
|
6090
|
+
knowledge_context = build_context_fn(
|
|
6091
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
6092
|
+
)
|
|
6093
|
+
if knowledge_context:
|
|
6094
|
+
system_message_content += knowledge_context + "\n"
|
|
6095
|
+
|
|
6092
6096
|
if self.description is not None:
|
|
6093
6097
|
system_message_content += f"<description>\n{self.description}\n</description>\n\n"
|
|
6094
6098
|
|
|
@@ -8359,6 +8363,8 @@ class Team:
|
|
|
8359
8363
|
config["add_knowledge_to_context"] = self.add_knowledge_to_context
|
|
8360
8364
|
if not self.search_knowledge: # default is True
|
|
8361
8365
|
config["search_knowledge"] = self.search_knowledge
|
|
8366
|
+
if self.add_search_knowledge_instructions:
|
|
8367
|
+
config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
|
|
8362
8368
|
if self.references_format != "json": # default is "json"
|
|
8363
8369
|
config["references_format"] = self.references_format
|
|
8364
8370
|
|
|
@@ -8717,6 +8723,7 @@ class Team:
|
|
|
8717
8723
|
add_knowledge_to_context=config.get("add_knowledge_to_context", False),
|
|
8718
8724
|
update_knowledge=config.get("update_knowledge", False),
|
|
8719
8725
|
search_knowledge=config.get("search_knowledge", True),
|
|
8726
|
+
add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
|
|
8720
8727
|
references_format=config.get("references_format", "json"),
|
|
8721
8728
|
# --- Tools ---
|
|
8722
8729
|
tools=config.get("tools"),
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from os import getenv
|
|
3
|
+
from typing import Any, List, Optional
|
|
4
|
+
|
|
5
|
+
from agno.tools import Toolkit
|
|
6
|
+
from agno.utils.log import log_info, logger
|
|
7
|
+
|
|
8
|
+
try:
|
|
9
|
+
from seltz import Seltz
|
|
10
|
+
from seltz.exceptions import (
|
|
11
|
+
SeltzAPIError,
|
|
12
|
+
SeltzAuthenticationError,
|
|
13
|
+
SeltzConfigurationError,
|
|
14
|
+
SeltzConnectionError,
|
|
15
|
+
SeltzError,
|
|
16
|
+
SeltzRateLimitError,
|
|
17
|
+
SeltzTimeoutError,
|
|
18
|
+
)
|
|
19
|
+
except ImportError as exc:
|
|
20
|
+
raise ImportError("`seltz` not installed. Please install using `pip install seltz`") from exc
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class SeltzTools(Toolkit):
|
|
24
|
+
"""Toolkit for interacting with the Seltz AI-powered search API.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
api_key: Seltz API key. If not provided, uses the `SELTZ_API_KEY` env var.
|
|
28
|
+
endpoint: Optional Seltz gRPC endpoint. If not provided, uses SDK default.
|
|
29
|
+
insecure: Use an insecure gRPC channel. Defaults to False.
|
|
30
|
+
max_documents: Default maximum number of documents to return per search.
|
|
31
|
+
show_results: Log search results for debugging.
|
|
32
|
+
enable_search: Enable search tool functionality. Defaults to True.
|
|
33
|
+
all: Enable all tools. Overrides individual flags when True. Defaults to False.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
def __init__(
|
|
37
|
+
self,
|
|
38
|
+
api_key: Optional[str] = None,
|
|
39
|
+
endpoint: Optional[str] = None,
|
|
40
|
+
insecure: bool = False,
|
|
41
|
+
max_documents: int = 10,
|
|
42
|
+
show_results: bool = False,
|
|
43
|
+
enable_search: bool = True,
|
|
44
|
+
all: bool = False,
|
|
45
|
+
**kwargs: Any,
|
|
46
|
+
):
|
|
47
|
+
if max_documents <= 0:
|
|
48
|
+
raise ValueError("max_documents must be greater than 0")
|
|
49
|
+
|
|
50
|
+
self.api_key = api_key or getenv("SELTZ_API_KEY")
|
|
51
|
+
if not self.api_key:
|
|
52
|
+
logger.error("SELTZ_API_KEY not set. Please set the SELTZ_API_KEY environment variable.")
|
|
53
|
+
|
|
54
|
+
self.endpoint = endpoint
|
|
55
|
+
self.insecure = insecure
|
|
56
|
+
self.max_documents = max_documents
|
|
57
|
+
self.show_results = show_results
|
|
58
|
+
|
|
59
|
+
self.client: Optional[Seltz] = None
|
|
60
|
+
if self.api_key:
|
|
61
|
+
client_kwargs: dict[str, Any] = {"api_key": self.api_key}
|
|
62
|
+
if self.endpoint:
|
|
63
|
+
client_kwargs["endpoint"] = self.endpoint
|
|
64
|
+
if self.insecure:
|
|
65
|
+
client_kwargs["insecure"] = self.insecure
|
|
66
|
+
self.client = Seltz(**client_kwargs)
|
|
67
|
+
|
|
68
|
+
tools: List[Any] = []
|
|
69
|
+
if all or enable_search:
|
|
70
|
+
tools.append(self.search_seltz)
|
|
71
|
+
|
|
72
|
+
super().__init__(name="seltz", tools=tools, **kwargs)
|
|
73
|
+
|
|
74
|
+
def _parse_documents(self, documents: Any) -> str:
|
|
75
|
+
"""Convert Seltz documents into JSON for the agent."""
|
|
76
|
+
parsed: List[dict[str, Any]] = []
|
|
77
|
+
for doc in documents or []:
|
|
78
|
+
doc_dict: dict[str, Any] = {}
|
|
79
|
+
url = getattr(doc, "url", None)
|
|
80
|
+
content = getattr(doc, "content", None)
|
|
81
|
+
|
|
82
|
+
if url is not None:
|
|
83
|
+
doc_dict["url"] = url
|
|
84
|
+
if content:
|
|
85
|
+
doc_dict["content"] = content
|
|
86
|
+
if doc_dict:
|
|
87
|
+
parsed.append(doc_dict)
|
|
88
|
+
return json.dumps(parsed, indent=4, ensure_ascii=False)
|
|
89
|
+
|
|
90
|
+
def search_seltz(self, query: str, max_documents: Optional[int] = None) -> str:
|
|
91
|
+
"""Use this function to search Seltz for a query.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
query: The query to search for.
|
|
95
|
+
max_documents: Maximum number of documents to return. Defaults to toolkit `max_documents`.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
str: Search results in JSON format.
|
|
99
|
+
"""
|
|
100
|
+
if not query:
|
|
101
|
+
return "Error: Please provide a query to search for."
|
|
102
|
+
|
|
103
|
+
if not self.client:
|
|
104
|
+
return "Error: SELTZ_API_KEY not set. Please set the SELTZ_API_KEY environment variable."
|
|
105
|
+
|
|
106
|
+
limit = max_documents if max_documents is not None else self.max_documents
|
|
107
|
+
if limit <= 0:
|
|
108
|
+
return "Error: max_documents must be greater than 0."
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
if self.show_results:
|
|
112
|
+
log_info(f"Searching Seltz for: {query}")
|
|
113
|
+
|
|
114
|
+
response = self.client.search(query, max_documents=limit)
|
|
115
|
+
result = self._parse_documents(getattr(response, "documents", []))
|
|
116
|
+
|
|
117
|
+
if self.show_results:
|
|
118
|
+
log_info(result)
|
|
119
|
+
|
|
120
|
+
return result
|
|
121
|
+
except (
|
|
122
|
+
SeltzConfigurationError,
|
|
123
|
+
SeltzAuthenticationError,
|
|
124
|
+
SeltzConnectionError,
|
|
125
|
+
SeltzTimeoutError,
|
|
126
|
+
SeltzRateLimitError,
|
|
127
|
+
SeltzAPIError,
|
|
128
|
+
SeltzError,
|
|
129
|
+
) as exc:
|
|
130
|
+
logger.error(f"Seltz error: {exc}")
|
|
131
|
+
return f"Error: {exc}"
|
|
132
|
+
except Exception as exc:
|
|
133
|
+
logger.error(f"Failed to search Seltz: {exc}")
|
|
134
|
+
return f"Error: {exc}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.5
|
|
4
4
|
Summary: Agno: a lightweight library for building Multi-Agent Systems
|
|
5
5
|
Author-email: Ashpreet Bedi <ashpreet@agno.com>
|
|
6
6
|
Project-URL: homepage, https://agno.com
|
|
@@ -132,6 +132,8 @@ Provides-Extra: evm
|
|
|
132
132
|
Requires-Dist: web3; extra == "evm"
|
|
133
133
|
Provides-Extra: exa
|
|
134
134
|
Requires-Dist: exa_py; extra == "exa"
|
|
135
|
+
Provides-Extra: seltz
|
|
136
|
+
Requires-Dist: seltz; extra == "seltz"
|
|
135
137
|
Provides-Extra: fal
|
|
136
138
|
Requires-Dist: fal_client; extra == "fal"
|
|
137
139
|
Provides-Extra: firecrawl
|
|
@@ -308,6 +310,7 @@ Provides-Extra: tools
|
|
|
308
310
|
Requires-Dist: agno[apify]; extra == "tools"
|
|
309
311
|
Requires-Dist: agno[arxiv]; extra == "tools"
|
|
310
312
|
Requires-Dist: agno[exa]; extra == "tools"
|
|
313
|
+
Requires-Dist: agno[seltz]; extra == "tools"
|
|
311
314
|
Requires-Dist: agno[cartesia]; extra == "tools"
|
|
312
315
|
Requires-Dist: agno[ddg]; extra == "tools"
|
|
313
316
|
Requires-Dist: agno[duckdb]; extra == "tools"
|
|
@@ -383,6 +383,9 @@ reportlab
|
|
|
383
383
|
[scrapegraph]
|
|
384
384
|
scrapegraph-py
|
|
385
385
|
|
|
386
|
+
[seltz]
|
|
387
|
+
seltz
|
|
388
|
+
|
|
386
389
|
[singlestore]
|
|
387
390
|
sqlalchemy
|
|
388
391
|
|
|
@@ -439,6 +442,7 @@ tokenizers
|
|
|
439
442
|
agno[apify]
|
|
440
443
|
agno[arxiv]
|
|
441
444
|
agno[exa]
|
|
445
|
+
agno[seltz]
|
|
442
446
|
agno[cartesia]
|
|
443
447
|
agno[ddg]
|
|
444
448
|
agno[duckdb]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agno"
|
|
3
|
-
version = "2.4.
|
|
3
|
+
version = "2.4.5"
|
|
4
4
|
description = "Agno: a lightweight library for building Multi-Agent Systems"
|
|
5
5
|
requires-python = ">=3.7,<4"
|
|
6
6
|
readme = "README.md"
|
|
@@ -109,6 +109,7 @@ duckdb = ["duckdb"]
|
|
|
109
109
|
elevenlabs = ["elevenlabs"]
|
|
110
110
|
evm = ["web3"]
|
|
111
111
|
exa = ["exa_py"]
|
|
112
|
+
seltz = ["seltz"]
|
|
112
113
|
fal = ["fal_client"]
|
|
113
114
|
firecrawl = ["firecrawl-py==3.4.0"]
|
|
114
115
|
tavily = ["tavily-python"]
|
|
@@ -227,6 +228,7 @@ tools = [
|
|
|
227
228
|
"agno[arxiv]",
|
|
228
229
|
# "agno[brave]", # It clashes with other dependencies
|
|
229
230
|
"agno[exa]",
|
|
231
|
+
"agno[seltz]",
|
|
230
232
|
"agno[cartesia]",
|
|
231
233
|
"agno[ddg]",
|
|
232
234
|
"agno[duckdb]",
|
|
@@ -447,6 +449,7 @@ module = [
|
|
|
447
449
|
"e2b_code_interpreter.*",
|
|
448
450
|
"eth_account.*",
|
|
449
451
|
"exa_py.*",
|
|
452
|
+
"seltz.*",
|
|
450
453
|
"fastapi.*",
|
|
451
454
|
"fastembed.*",
|
|
452
455
|
"fastmcp.*",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|