agno 2.1.6__tar.gz → 2.1.8__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.1.6 → agno-2.1.8}/PKG-INFO +1 -1
- {agno-2.1.6 → agno-2.1.8}/agno/agent/agent.py +174 -37
- agno-2.1.8/agno/db/postgres/__init__.py +4 -0
- {agno-2.1.6 → agno-2.1.8}/agno/memory/manager.py +19 -6
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/knowledge/knowledge.py +4 -4
- {agno-2.1.6 → agno-2.1.8}/agno/os/schema.py +6 -6
- {agno-2.1.6 → agno-2.1.8}/agno/team/team.py +103 -29
- {agno-2.1.6 → agno-2.1.8}/agno/tools/googlecalendar.py +43 -8
- {agno-2.1.6 → agno-2.1.8}/agno/tools/jira.py +20 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/step.py +51 -27
- {agno-2.1.6 → agno-2.1.8}/agno.egg-info/PKG-INFO +1 -1
- {agno-2.1.6 → agno-2.1.8}/pyproject.toml +1 -1
- agno-2.1.6/agno/db/postgres/__init__.py +0 -3
- {agno-2.1.6 → agno-2.1.8}/LICENSE +0 -0
- {agno-2.1.6 → agno-2.1.8}/README.md +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/agent/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/agent.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/api.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/evals.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/os.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/routes.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/agent.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/evals.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/os.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/response.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/schemas/workflows.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/settings.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/api/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/cloud/aws/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/async_postgres/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/async_postgres/async_postgres.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/async_postgres/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/async_postgres/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/dynamo/dynamo.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/dynamo/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/firestore/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/firestore/firestore.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/firestore/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/firestore/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/gcs_json/gcs_json_db.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/gcs_json/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/in_memory/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/json/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/json/json_db.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/json/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/migrations/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/migrations/v1_to_v2.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mongo/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mongo/mongo.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mongo/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mongo/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mysql/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mysql/mysql.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mysql/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/mysql/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/postgres/postgres.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/postgres/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/postgres/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/redis/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/redis/redis.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/redis/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/redis/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/schemas/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/schemas/evals.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/schemas/memory.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/schemas/metrics.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/singlestore/singlestore.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/singlestore/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/sqlite/sqlite.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/sqlite/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/metrics.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/models.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/queries.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/surrealdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/surrealdb/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/db/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/debug.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/eval/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/eval/accuracy.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/eval/performance.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/eval/reliability.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/eval/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/exceptions.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/guardrails/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/guardrails/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/guardrails/openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/guardrails/pii.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/guardrails/prompt_injection.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/integrations/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/integrations/discord/client.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/agentic.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/document.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/fixed.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/markdown.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/recursive.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/row.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/semantic.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/chunking/strategy.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/content.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/document/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/mistral.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/knowledge.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/reader_factory.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/text_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/web_search_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/types.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/knowledge/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/media.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/memory/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/aimlapi/aimlapi.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/anthropic/claude.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/aws/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/aws/bedrock.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/aws/claude.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/azure/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cerebras/cerebras.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cerebras/cerebras_openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cohere/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cohere/chat.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cometapi/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/cometapi/cometapi.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/deepinfra/deepinfra.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/defaults.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/fireworks/fireworks.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/google/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/google/gemini.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/groq/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/groq/groq.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/huggingface/huggingface.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/ibm/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/ibm/watsonx.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/internlm/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/internlm/internlm.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/langdb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/langdb/langdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/litellm/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/litellm/chat.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/litellm/litellm_openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/llama_cpp/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/llama_cpp/llama_cpp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/message.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/meta/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/meta/llama.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/meta/llama_openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/metrics.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/mistral/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/mistral/mistral.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nebius/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nebius/nebius.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nexus/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nexus/nexus.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/nvidia/nvidia.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/ollama/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/ollama/chat.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openai/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openai/chat.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openai/like.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openai/responses.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/openrouter/openrouter.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/perplexity/perplexity.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/portkey/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/portkey/portkey.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/requesty/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/requesty/requesty.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/response.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/sambanova/sambanova.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/siliconflow/siliconflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/together/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/together/together.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vercel/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vercel/v0.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vertexai/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vertexai/claude.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vllm/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/vllm/vllm.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/xai/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/models/xai/xai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/app.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/auth.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/config.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/a2a/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/a2a/a2a.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/a2a/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/a2a/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/agui/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/mcp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/middleware/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/middleware/jwt.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/evals/evals.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/evals/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/health.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/home.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/knowledge/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/memory/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/metrics/schemas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/routers/session/session.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/settings.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/os/utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/py.typed +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/anthropic.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/deepseek.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/default.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/gemini.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/groq.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/helpers.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/ollama.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/step.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/reasoning/vertexai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/agent.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/cancel.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/messages.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/run/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/session/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/session/agent.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/session/summary.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/session/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/session/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/team/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/agentql.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/airflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/api.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/apify.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/arxiv.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/aws_lambda.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/aws_ses.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/baidusearch.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/bitbucket.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/brandfetch.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/bravesearch.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/brightdata.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/browserbase.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/calcom.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/calculator.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/cartesia.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/clickup.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/confluence.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/crawl4ai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/dalle.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/daytona.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/decorator.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/desi_vocal.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/discord.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/docker.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/duckdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/duckduckgo.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/e2b.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/eleven_labs.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/email.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/evm.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/exa.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/fal.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/file.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/file_generation.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/financial_datasets.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/firecrawl.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/function.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/giphy.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/github.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/gmail.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/google_bigquery.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/google_drive.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/google_maps.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/googlesearch.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/googlesheets.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/hackernews.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/jina.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/knowledge.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/linear.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/linkup.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/local_file_system.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/lumalab.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/mcp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/mcp_toolbox.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/mem0.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/memori.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/memory.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/gemini.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/groq.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/morph.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models/nebius.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/models_labs.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/moviepy_video.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/neo4j.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/newspaper.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/newspaper4k.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/openbb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/opencv.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/openweather.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/oxylabs.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/pandas.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/postgres.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/pubmed.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/python.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/reasoning.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/reddit.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/replicate.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/resend.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/scrapegraph.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/searxng.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/serpapi.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/serper.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/shell.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/slack.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/sleep.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/spider.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/sql.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/streamlit/components.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/tavily.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/telegram.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/todoist.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/tool_registry.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/toolkit.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/trafilatura.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/trello.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/twilio.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/user_control_flow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/valyu.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/visualization.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/webbrowser.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/webex.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/website.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/webtools.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/whatsapp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/wikipedia.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/x.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/yfinance.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/youtube.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/zendesk.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/zep.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/tools/zoom.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/audio.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/certs.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/code_execution.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/common.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/dttm.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/enum.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/env.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/events.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/format_str.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/functions.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/gemini.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/hooks.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/http.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/json_schema.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/knowledge.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/location.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/log.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/mcp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/media.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/merge_dict.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/message.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/claude.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/cohere.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/llama.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/mistral.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/models/watsonx.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/openai.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/pickle.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/pprint.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/print_response/agent.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/print_response/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/prompts.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/reasoning.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/response.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/response_iterator.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/safe_formatter.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/serialize.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/shell.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/streamlit.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/string.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/team.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/timer.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/tools.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/web.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/whatsapp.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/utils/yaml_io.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/base.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/distance.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/search.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/weaviate/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/__init__.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/condition.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/loop.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/parallel.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/router.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/steps.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/types.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno/workflow/workflow.py +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno.egg-info/SOURCES.txt +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno.egg-info/requires.txt +0 -0
- {agno-2.1.6 → agno-2.1.8}/agno.egg-info/top_level.txt +0 -0
- {agno-2.1.6 → agno-2.1.8}/setup.cfg +0 -0
|
@@ -819,6 +819,9 @@ class Agent:
|
|
|
819
819
|
hooks=self.pre_hooks, # type: ignore
|
|
820
820
|
run_response=run_response,
|
|
821
821
|
run_input=run_input,
|
|
822
|
+
session_state=session_state,
|
|
823
|
+
dependencies=dependencies,
|
|
824
|
+
metadata=metadata,
|
|
822
825
|
session=session,
|
|
823
826
|
user_id=user_id,
|
|
824
827
|
debug_mode=debug_mode,
|
|
@@ -902,25 +905,26 @@ class Agent:
|
|
|
902
905
|
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
903
906
|
)
|
|
904
907
|
|
|
905
|
-
run_response.status = RunStatus.completed
|
|
906
|
-
|
|
907
908
|
# Convert the response to the structured format if needed
|
|
908
909
|
self._convert_response_to_structured_format(run_response)
|
|
909
910
|
|
|
910
|
-
#
|
|
911
|
-
if run_response.metrics:
|
|
912
|
-
run_response.metrics.stop_timer()
|
|
913
|
-
|
|
914
|
-
# 6. Execute post-hooks after output is generated but before response is returned
|
|
911
|
+
# Execute post-hooks after output is generated but before response is returned
|
|
915
912
|
if self.post_hooks is not None:
|
|
916
913
|
self._execute_post_hooks(
|
|
917
914
|
hooks=self.post_hooks, # type: ignore
|
|
918
915
|
run_output=run_response,
|
|
916
|
+
session_state=session_state,
|
|
917
|
+
dependencies=dependencies,
|
|
918
|
+
metadata=metadata,
|
|
919
919
|
session=session,
|
|
920
920
|
user_id=user_id,
|
|
921
921
|
debug_mode=debug_mode,
|
|
922
922
|
**kwargs,
|
|
923
923
|
)
|
|
924
|
+
run_response.status = RunStatus.completed
|
|
925
|
+
# Stop the timer for the Run duration
|
|
926
|
+
if run_response.metrics:
|
|
927
|
+
run_response.metrics.stop_timer()
|
|
924
928
|
|
|
925
929
|
# 7. Calculate session metrics
|
|
926
930
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
@@ -1002,6 +1006,9 @@ class Agent:
|
|
|
1002
1006
|
hooks=self.pre_hooks, # type: ignore
|
|
1003
1007
|
run_response=run_response,
|
|
1004
1008
|
run_input=run_input,
|
|
1009
|
+
session_state=session_state,
|
|
1010
|
+
dependencies=dependencies,
|
|
1011
|
+
metadata=metadata,
|
|
1005
1012
|
session=session,
|
|
1006
1013
|
user_id=user_id,
|
|
1007
1014
|
debug_mode=debug_mode,
|
|
@@ -1115,14 +1122,26 @@ class Agent:
|
|
|
1115
1122
|
)
|
|
1116
1123
|
return
|
|
1117
1124
|
|
|
1125
|
+
# Execute post-hooks after output is generated but before response is returned
|
|
1126
|
+
if self.post_hooks is not None:
|
|
1127
|
+
self._execute_post_hooks(
|
|
1128
|
+
hooks=self.post_hooks, # type: ignore
|
|
1129
|
+
run_output=run_response,
|
|
1130
|
+
session_state=session_state,
|
|
1131
|
+
dependencies=dependencies,
|
|
1132
|
+
metadata=metadata,
|
|
1133
|
+
session=session,
|
|
1134
|
+
user_id=user_id,
|
|
1135
|
+
debug_mode=debug_mode,
|
|
1136
|
+
**kwargs,
|
|
1137
|
+
)
|
|
1138
|
+
|
|
1118
1139
|
run_response.status = RunStatus.completed
|
|
1119
1140
|
|
|
1120
1141
|
# Set the run duration
|
|
1121
1142
|
if run_response.metrics:
|
|
1122
1143
|
run_response.metrics.stop_timer()
|
|
1123
1144
|
|
|
1124
|
-
# TODO: For now we don't run post-hooks during streaming
|
|
1125
|
-
|
|
1126
1145
|
# 5. Calculate session metrics
|
|
1127
1146
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
1128
1147
|
|
|
@@ -1350,7 +1369,6 @@ class Agent:
|
|
|
1350
1369
|
self.model = cast(Model, self.model)
|
|
1351
1370
|
|
|
1352
1371
|
# Merge agent metadata with run metadata
|
|
1353
|
-
|
|
1354
1372
|
if self.metadata is not None:
|
|
1355
1373
|
if metadata is None:
|
|
1356
1374
|
metadata = self.metadata
|
|
@@ -1534,6 +1552,9 @@ class Agent:
|
|
|
1534
1552
|
hooks=self.pre_hooks, # type: ignore
|
|
1535
1553
|
run_response=run_response,
|
|
1536
1554
|
run_input=run_input,
|
|
1555
|
+
session_state=session_state,
|
|
1556
|
+
dependencies=dependencies,
|
|
1557
|
+
metadata=metadata,
|
|
1537
1558
|
session=agent_session,
|
|
1538
1559
|
user_id=user_id,
|
|
1539
1560
|
debug_mode=debug_mode,
|
|
@@ -1619,27 +1640,30 @@ class Agent:
|
|
|
1619
1640
|
# 10. Calculate session metrics
|
|
1620
1641
|
self._update_session_metrics(session=agent_session, run_response=run_response)
|
|
1621
1642
|
|
|
1622
|
-
# Set the run status to completed
|
|
1623
|
-
run_response.status = RunStatus.completed
|
|
1624
|
-
|
|
1625
1643
|
# Convert the response to the structured format if needed
|
|
1626
1644
|
self._convert_response_to_structured_format(run_response)
|
|
1627
1645
|
|
|
1628
|
-
#
|
|
1629
|
-
if run_response.metrics:
|
|
1630
|
-
run_response.metrics.stop_timer()
|
|
1631
|
-
|
|
1632
|
-
# 10. Execute post-hooks (after output is generated but before response is returned)
|
|
1646
|
+
# Execute post-hooks (after output is generated but before response is returned)
|
|
1633
1647
|
if self.post_hooks is not None:
|
|
1634
1648
|
await self._aexecute_post_hooks(
|
|
1635
1649
|
hooks=self.post_hooks, # type: ignore
|
|
1636
1650
|
run_output=run_response,
|
|
1651
|
+
session_state=session_state,
|
|
1652
|
+
dependencies=dependencies,
|
|
1653
|
+
metadata=metadata,
|
|
1637
1654
|
session=agent_session,
|
|
1638
1655
|
user_id=user_id,
|
|
1639
1656
|
debug_mode=debug_mode,
|
|
1640
1657
|
**kwargs,
|
|
1641
1658
|
)
|
|
1642
1659
|
|
|
1660
|
+
# Set the run status to completed
|
|
1661
|
+
run_response.status = RunStatus.completed
|
|
1662
|
+
|
|
1663
|
+
# Set the run duration
|
|
1664
|
+
if run_response.metrics:
|
|
1665
|
+
run_response.metrics.stop_timer()
|
|
1666
|
+
|
|
1643
1667
|
# Optional: Save output to file if save_response_to_file is set
|
|
1644
1668
|
self.save_run_response_to_file(
|
|
1645
1669
|
run_response=run_response,
|
|
@@ -1872,6 +1896,20 @@ class Agent:
|
|
|
1872
1896
|
yield item
|
|
1873
1897
|
return
|
|
1874
1898
|
|
|
1899
|
+
# Execute post-hooks (after output is generated but before response is returned)
|
|
1900
|
+
if self.post_hooks is not None:
|
|
1901
|
+
await self._aexecute_post_hooks(
|
|
1902
|
+
hooks=self.post_hooks, # type: ignore
|
|
1903
|
+
run_output=run_response,
|
|
1904
|
+
session_state=session_state,
|
|
1905
|
+
dependencies=dependencies,
|
|
1906
|
+
metadata=metadata,
|
|
1907
|
+
session=agent_session,
|
|
1908
|
+
user_id=user_id,
|
|
1909
|
+
debug_mode=debug_mode,
|
|
1910
|
+
**kwargs,
|
|
1911
|
+
)
|
|
1912
|
+
|
|
1875
1913
|
# Set the run status to completed
|
|
1876
1914
|
run_response.status = RunStatus.completed
|
|
1877
1915
|
|
|
@@ -2219,6 +2257,7 @@ class Agent:
|
|
|
2219
2257
|
retries: Optional[int] = None,
|
|
2220
2258
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2221
2259
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2260
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2222
2261
|
debug_mode: Optional[bool] = None,
|
|
2223
2262
|
) -> RunOutput: ...
|
|
2224
2263
|
|
|
@@ -2236,6 +2275,7 @@ class Agent:
|
|
|
2236
2275
|
retries: Optional[int] = None,
|
|
2237
2276
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2238
2277
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2278
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2239
2279
|
debug_mode: Optional[bool] = None,
|
|
2240
2280
|
) -> Iterator[RunOutputEvent]: ...
|
|
2241
2281
|
|
|
@@ -2252,6 +2292,7 @@ class Agent:
|
|
|
2252
2292
|
retries: Optional[int] = None,
|
|
2253
2293
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2254
2294
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2295
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2255
2296
|
debug_mode: Optional[bool] = None,
|
|
2256
2297
|
**kwargs,
|
|
2257
2298
|
) -> Union[RunOutput, Iterator[RunOutputEvent]]:
|
|
@@ -2308,6 +2349,13 @@ class Agent:
|
|
|
2308
2349
|
if self.knowledge_filters or knowledge_filters:
|
|
2309
2350
|
effective_filters = self._get_effective_filters(knowledge_filters)
|
|
2310
2351
|
|
|
2352
|
+
# Merge agent metadata with run metadata
|
|
2353
|
+
if self.metadata is not None:
|
|
2354
|
+
if metadata is None:
|
|
2355
|
+
metadata = self.metadata
|
|
2356
|
+
else:
|
|
2357
|
+
merge_dictionaries(metadata, self.metadata)
|
|
2358
|
+
|
|
2311
2359
|
# If no retries are set, use the agent's default retries
|
|
2312
2360
|
retries = retries if retries is not None else self.retries
|
|
2313
2361
|
|
|
@@ -2383,8 +2431,13 @@ class Agent:
|
|
|
2383
2431
|
run_messages=run_messages,
|
|
2384
2432
|
user_id=user_id,
|
|
2385
2433
|
session=agent_session,
|
|
2434
|
+
session_state=session_state,
|
|
2435
|
+
dependencies=run_dependencies,
|
|
2436
|
+
metadata=metadata,
|
|
2386
2437
|
response_format=response_format,
|
|
2387
2438
|
stream_intermediate_steps=stream_intermediate_steps,
|
|
2439
|
+
debug_mode=debug_mode,
|
|
2440
|
+
**kwargs,
|
|
2388
2441
|
)
|
|
2389
2442
|
return response_iterator
|
|
2390
2443
|
else:
|
|
@@ -2393,6 +2446,9 @@ class Agent:
|
|
|
2393
2446
|
run_messages=run_messages,
|
|
2394
2447
|
user_id=user_id,
|
|
2395
2448
|
session=agent_session,
|
|
2449
|
+
session_state=session_state,
|
|
2450
|
+
dependencies=run_dependencies,
|
|
2451
|
+
metadata=metadata,
|
|
2396
2452
|
response_format=response_format,
|
|
2397
2453
|
debug_mode=debug_mode,
|
|
2398
2454
|
**kwargs,
|
|
@@ -2440,6 +2496,9 @@ class Agent:
|
|
|
2440
2496
|
run_response: RunOutput,
|
|
2441
2497
|
run_messages: RunMessages,
|
|
2442
2498
|
session: AgentSession,
|
|
2499
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
2500
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
2501
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2443
2502
|
user_id: Optional[str] = None,
|
|
2444
2503
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
2445
2504
|
debug_mode: Optional[bool] = None,
|
|
@@ -2483,25 +2542,27 @@ class Agent:
|
|
|
2483
2542
|
# 3. Calculate session metrics
|
|
2484
2543
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
2485
2544
|
|
|
2486
|
-
run_response.status = RunStatus.completed
|
|
2487
|
-
|
|
2488
2545
|
# Convert the response to the structured format if needed
|
|
2489
2546
|
self._convert_response_to_structured_format(run_response)
|
|
2490
2547
|
|
|
2491
|
-
# Set the run duration
|
|
2492
|
-
if run_response.metrics:
|
|
2493
|
-
run_response.metrics.stop_timer()
|
|
2494
|
-
|
|
2495
2548
|
if self.post_hooks is not None:
|
|
2496
2549
|
self._execute_post_hooks(
|
|
2497
2550
|
hooks=self.post_hooks, # type: ignore
|
|
2498
2551
|
run_output=run_response,
|
|
2552
|
+
session_state=session_state,
|
|
2553
|
+
dependencies=dependencies,
|
|
2554
|
+
metadata=metadata,
|
|
2499
2555
|
session=session,
|
|
2500
2556
|
user_id=user_id,
|
|
2501
2557
|
debug_mode=debug_mode,
|
|
2502
2558
|
**kwargs,
|
|
2503
2559
|
)
|
|
2504
2560
|
|
|
2561
|
+
run_response.status = RunStatus.completed
|
|
2562
|
+
# Set the run duration
|
|
2563
|
+
if run_response.metrics:
|
|
2564
|
+
run_response.metrics.stop_timer()
|
|
2565
|
+
|
|
2505
2566
|
# 4. Save output to file if save_response_to_file is set
|
|
2506
2567
|
self.save_run_response_to_file(
|
|
2507
2568
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
@@ -2530,10 +2591,14 @@ class Agent:
|
|
|
2530
2591
|
run_response: RunOutput,
|
|
2531
2592
|
run_messages: RunMessages,
|
|
2532
2593
|
session: AgentSession,
|
|
2594
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
2595
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2533
2596
|
user_id: Optional[str] = None,
|
|
2534
2597
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
2535
2598
|
stream_intermediate_steps: bool = False,
|
|
2536
2599
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2600
|
+
debug_mode: Optional[bool] = None,
|
|
2601
|
+
**kwargs,
|
|
2537
2602
|
) -> Iterator[RunOutputEvent]:
|
|
2538
2603
|
"""Continue a previous run.
|
|
2539
2604
|
|
|
@@ -2575,8 +2640,18 @@ class Agent:
|
|
|
2575
2640
|
)
|
|
2576
2641
|
return
|
|
2577
2642
|
|
|
2578
|
-
|
|
2579
|
-
|
|
2643
|
+
if self.post_hooks is not None:
|
|
2644
|
+
self._execute_post_hooks(
|
|
2645
|
+
hooks=self.post_hooks, # type: ignore
|
|
2646
|
+
run_output=run_response,
|
|
2647
|
+
session_state=session_state,
|
|
2648
|
+
dependencies=dependencies,
|
|
2649
|
+
metadata=metadata,
|
|
2650
|
+
session=session,
|
|
2651
|
+
user_id=user_id,
|
|
2652
|
+
debug_mode=debug_mode,
|
|
2653
|
+
**kwargs,
|
|
2654
|
+
)
|
|
2580
2655
|
|
|
2581
2656
|
run_response.status = RunStatus.completed
|
|
2582
2657
|
|
|
@@ -2584,6 +2659,9 @@ class Agent:
|
|
|
2584
2659
|
if run_response.metrics:
|
|
2585
2660
|
run_response.metrics.stop_timer()
|
|
2586
2661
|
|
|
2662
|
+
# 3. Calculate session metrics
|
|
2663
|
+
self._update_session_metrics(session=session, run_response=run_response)
|
|
2664
|
+
|
|
2587
2665
|
# 4. Save output to file if save_response_to_file is set
|
|
2588
2666
|
self.save_run_response_to_file(
|
|
2589
2667
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
@@ -2625,6 +2703,7 @@ class Agent:
|
|
|
2625
2703
|
retries: Optional[int] = None,
|
|
2626
2704
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2627
2705
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2706
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2628
2707
|
debug_mode: Optional[bool] = None,
|
|
2629
2708
|
) -> RunOutput: ...
|
|
2630
2709
|
|
|
@@ -2642,6 +2721,7 @@ class Agent:
|
|
|
2642
2721
|
retries: Optional[int] = None,
|
|
2643
2722
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2644
2723
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2724
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2645
2725
|
debug_mode: Optional[bool] = None,
|
|
2646
2726
|
) -> AsyncIterator[Union[RunOutputEvent, RunOutput]]: ...
|
|
2647
2727
|
|
|
@@ -2658,6 +2738,7 @@ class Agent:
|
|
|
2658
2738
|
retries: Optional[int] = None,
|
|
2659
2739
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
2660
2740
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2741
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2661
2742
|
debug_mode: Optional[bool] = None,
|
|
2662
2743
|
yield_run_response: bool = False,
|
|
2663
2744
|
**kwargs,
|
|
@@ -2718,6 +2799,13 @@ class Agent:
|
|
|
2718
2799
|
if self.knowledge_filters or knowledge_filters:
|
|
2719
2800
|
effective_filters = self._get_effective_filters(knowledge_filters)
|
|
2720
2801
|
|
|
2802
|
+
# Merge agent metadata with run metadata
|
|
2803
|
+
if self.metadata is not None:
|
|
2804
|
+
if metadata is None:
|
|
2805
|
+
metadata = self.metadata
|
|
2806
|
+
else:
|
|
2807
|
+
merge_dictionaries(metadata, self.metadata)
|
|
2808
|
+
|
|
2721
2809
|
# Prepare arguments for the model
|
|
2722
2810
|
response_format = self._get_response_format()
|
|
2723
2811
|
self.model = cast(Model, self.model)
|
|
@@ -2737,8 +2825,11 @@ class Agent:
|
|
|
2737
2825
|
session_id=session_id,
|
|
2738
2826
|
response_format=response_format,
|
|
2739
2827
|
dependencies=run_dependencies,
|
|
2828
|
+
metadata=metadata,
|
|
2740
2829
|
stream_intermediate_steps=stream_intermediate_steps,
|
|
2741
2830
|
yield_run_response=yield_run_response,
|
|
2831
|
+
debug_mode=debug_mode,
|
|
2832
|
+
**kwargs,
|
|
2742
2833
|
)
|
|
2743
2834
|
else:
|
|
2744
2835
|
return self._acontinue_run( # type: ignore
|
|
@@ -2751,6 +2842,7 @@ class Agent:
|
|
|
2751
2842
|
user_id=user_id,
|
|
2752
2843
|
response_format=response_format,
|
|
2753
2844
|
dependencies=run_dependencies,
|
|
2845
|
+
metadata=metadata,
|
|
2754
2846
|
debug_mode=debug_mode,
|
|
2755
2847
|
**kwargs,
|
|
2756
2848
|
)
|
|
@@ -2802,6 +2894,7 @@ class Agent:
|
|
|
2802
2894
|
user_id: Optional[str] = None,
|
|
2803
2895
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
2804
2896
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
2897
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
2805
2898
|
debug_mode: Optional[bool] = None,
|
|
2806
2899
|
**kwargs,
|
|
2807
2900
|
) -> RunOutput:
|
|
@@ -2822,7 +2915,7 @@ class Agent:
|
|
|
2822
2915
|
12. Update Agent Memory
|
|
2823
2916
|
13. Save session to storage
|
|
2824
2917
|
"""
|
|
2825
|
-
log_debug(f"Agent Run Continue: {run_response.run_id}", center=True) # type: ignore
|
|
2918
|
+
log_debug(f"Agent Run Continue: {run_response.run_id if run_response else run_id}", center=True) # type: ignore
|
|
2826
2919
|
|
|
2827
2920
|
# 1. Read existing session from db
|
|
2828
2921
|
if self._has_async_db():
|
|
@@ -2923,7 +3016,8 @@ class Agent:
|
|
|
2923
3016
|
# 10. Calculate session metrics
|
|
2924
3017
|
self._update_session_metrics(session=agent_session, run_response=run_response)
|
|
2925
3018
|
|
|
2926
|
-
|
|
3019
|
+
# Convert the response to the structured format if needed
|
|
3020
|
+
self._convert_response_to_structured_format(run_response)
|
|
2927
3021
|
|
|
2928
3022
|
# 11. Execute post-hooks
|
|
2929
3023
|
if self.post_hooks is not None:
|
|
@@ -2933,11 +3027,13 @@ class Agent:
|
|
|
2933
3027
|
session=agent_session,
|
|
2934
3028
|
user_id=user_id,
|
|
2935
3029
|
debug_mode=debug_mode,
|
|
3030
|
+
session_state=session_state,
|
|
3031
|
+
dependencies=dependencies,
|
|
3032
|
+
metadata=metadata,
|
|
2936
3033
|
**kwargs,
|
|
2937
3034
|
)
|
|
2938
3035
|
|
|
2939
|
-
|
|
2940
|
-
self._convert_response_to_structured_format(run_response)
|
|
3036
|
+
run_response.status = RunStatus.completed
|
|
2941
3037
|
|
|
2942
3038
|
if run_response.metrics:
|
|
2943
3039
|
run_response.metrics.stop_timer()
|
|
@@ -3002,6 +3098,9 @@ class Agent:
|
|
|
3002
3098
|
stream_intermediate_steps: bool = False,
|
|
3003
3099
|
yield_run_response: Optional[bool] = None,
|
|
3004
3100
|
dependencies: Optional[Dict[str, Any]] = None,
|
|
3101
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
3102
|
+
debug_mode: Optional[bool] = None,
|
|
3103
|
+
**kwargs,
|
|
3005
3104
|
) -> AsyncIterator[Union[RunOutputEvent, RunOutput]]:
|
|
3006
3105
|
"""Continue a previous run.
|
|
3007
3106
|
|
|
@@ -3021,7 +3120,7 @@ class Agent:
|
|
|
3021
3120
|
13. Add the RunOutput to Agent Session
|
|
3022
3121
|
14. Save session to storage
|
|
3023
3122
|
"""
|
|
3024
|
-
log_debug(f"Agent Run Continue: {run_response.run_id}", center=True) # type: ignore
|
|
3123
|
+
log_debug(f"Agent Run Continue: {run_response.run_id if run_response else run_id}", center=True) # type: ignore
|
|
3025
3124
|
|
|
3026
3125
|
# 1. Resolve dependencies
|
|
3027
3126
|
if dependencies is not None:
|
|
@@ -3144,16 +3243,30 @@ class Agent:
|
|
|
3144
3243
|
yield item
|
|
3145
3244
|
return
|
|
3146
3245
|
|
|
3147
|
-
run_response.status = RunStatus.completed
|
|
3148
|
-
|
|
3149
3246
|
# 9. Create the run completed event
|
|
3150
3247
|
completed_event = self._handle_event(create_run_completed_event(run_response), run_response)
|
|
3151
3248
|
|
|
3249
|
+
# 10. Execute post-hooks
|
|
3250
|
+
if self.post_hooks is not None:
|
|
3251
|
+
await self._aexecute_post_hooks(
|
|
3252
|
+
hooks=self.post_hooks, # type: ignore
|
|
3253
|
+
run_output=run_response,
|
|
3254
|
+
session=agent_session,
|
|
3255
|
+
user_id=user_id,
|
|
3256
|
+
debug_mode=debug_mode,
|
|
3257
|
+
session_state=session_state,
|
|
3258
|
+
dependencies=dependencies,
|
|
3259
|
+
metadata=metadata,
|
|
3260
|
+
**kwargs,
|
|
3261
|
+
)
|
|
3262
|
+
|
|
3263
|
+
run_response.status = RunStatus.completed
|
|
3264
|
+
|
|
3152
3265
|
# Set the run duration
|
|
3153
3266
|
if run_response.metrics:
|
|
3154
3267
|
run_response.metrics.stop_timer()
|
|
3155
3268
|
|
|
3156
|
-
#
|
|
3269
|
+
# 11. Add the run to memory
|
|
3157
3270
|
agent_session.upsert_run(run=run_response)
|
|
3158
3271
|
|
|
3159
3272
|
# Optional: Save output to file if save_response_to_file is set
|
|
@@ -3217,6 +3330,9 @@ class Agent:
|
|
|
3217
3330
|
run_response: RunOutput,
|
|
3218
3331
|
run_input: RunInput,
|
|
3219
3332
|
session: AgentSession,
|
|
3333
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
3334
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
3335
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
3220
3336
|
user_id: Optional[str] = None,
|
|
3221
3337
|
debug_mode: Optional[bool] = None,
|
|
3222
3338
|
**kwargs: Any,
|
|
@@ -3230,6 +3346,9 @@ class Agent:
|
|
|
3230
3346
|
"run_input": run_input,
|
|
3231
3347
|
"agent": self,
|
|
3232
3348
|
"session": session,
|
|
3349
|
+
"session_state": session_state,
|
|
3350
|
+
"dependencies": dependencies,
|
|
3351
|
+
"metadata": metadata,
|
|
3233
3352
|
"user_id": user_id,
|
|
3234
3353
|
"debug_mode": debug_mode or self.debug_mode,
|
|
3235
3354
|
}
|
|
@@ -3273,6 +3392,9 @@ class Agent:
|
|
|
3273
3392
|
run_response: RunOutput,
|
|
3274
3393
|
run_input: RunInput,
|
|
3275
3394
|
session: AgentSession,
|
|
3395
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
3396
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
3397
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
3276
3398
|
user_id: Optional[str] = None,
|
|
3277
3399
|
debug_mode: Optional[bool] = None,
|
|
3278
3400
|
**kwargs: Any,
|
|
@@ -3286,6 +3408,9 @@ class Agent:
|
|
|
3286
3408
|
"run_input": run_input,
|
|
3287
3409
|
"agent": self,
|
|
3288
3410
|
"session": session,
|
|
3411
|
+
"session_state": session_state,
|
|
3412
|
+
"dependencies": dependencies,
|
|
3413
|
+
"metadata": metadata,
|
|
3289
3414
|
"user_id": user_id,
|
|
3290
3415
|
"debug_mode": debug_mode or self.debug_mode,
|
|
3291
3416
|
}
|
|
@@ -3332,6 +3457,9 @@ class Agent:
|
|
|
3332
3457
|
hooks: Optional[List[Callable[..., Any]]],
|
|
3333
3458
|
run_output: RunOutput,
|
|
3334
3459
|
session: AgentSession,
|
|
3460
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
3461
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
3462
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
3335
3463
|
user_id: Optional[str] = None,
|
|
3336
3464
|
debug_mode: Optional[bool] = None,
|
|
3337
3465
|
**kwargs: Any,
|
|
@@ -3346,6 +3474,9 @@ class Agent:
|
|
|
3346
3474
|
"agent": self,
|
|
3347
3475
|
"session": session,
|
|
3348
3476
|
"user_id": user_id,
|
|
3477
|
+
"session_state": session_state,
|
|
3478
|
+
"dependencies": dependencies,
|
|
3479
|
+
"metadata": metadata,
|
|
3349
3480
|
"debug_mode": debug_mode or self.debug_mode,
|
|
3350
3481
|
}
|
|
3351
3482
|
all_args.update(kwargs)
|
|
@@ -3370,6 +3501,9 @@ class Agent:
|
|
|
3370
3501
|
hooks: Optional[List[Callable[..., Any]]],
|
|
3371
3502
|
run_output: RunOutput,
|
|
3372
3503
|
session: AgentSession,
|
|
3504
|
+
session_state: Optional[Dict[str, Any]] = None,
|
|
3505
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
3506
|
+
metadata: Optional[Dict[str, Any]] = None,
|
|
3373
3507
|
user_id: Optional[str] = None,
|
|
3374
3508
|
debug_mode: Optional[bool] = None,
|
|
3375
3509
|
**kwargs: Any,
|
|
@@ -3384,6 +3518,9 @@ class Agent:
|
|
|
3384
3518
|
"agent": self,
|
|
3385
3519
|
"session": session,
|
|
3386
3520
|
"user_id": user_id,
|
|
3521
|
+
"session_state": session_state,
|
|
3522
|
+
"dependencies": dependencies,
|
|
3523
|
+
"metadata": metadata,
|
|
3387
3524
|
"debug_mode": debug_mode or self.debug_mode,
|
|
3388
3525
|
}
|
|
3389
3526
|
all_args.update(kwargs)
|
|
@@ -6608,7 +6745,7 @@ class Agent:
|
|
|
6608
6745
|
files: Optional[Sequence[File]] = None,
|
|
6609
6746
|
knowledge_filters: Optional[Dict[str, Any]] = None,
|
|
6610
6747
|
add_history_to_context: Optional[bool] = None,
|
|
6611
|
-
|
|
6748
|
+
dependencies: Optional[Dict[str, Any]] = None,
|
|
6612
6749
|
add_dependencies_to_context: Optional[bool] = None,
|
|
6613
6750
|
add_session_state_to_context: Optional[bool] = None,
|
|
6614
6751
|
metadata: Optional[Dict[str, Any]] = None,
|
|
@@ -6646,7 +6783,7 @@ class Agent:
|
|
|
6646
6783
|
session=session,
|
|
6647
6784
|
session_state=session_state,
|
|
6648
6785
|
user_id=user_id,
|
|
6649
|
-
dependencies=
|
|
6786
|
+
dependencies=dependencies,
|
|
6650
6787
|
metadata=metadata,
|
|
6651
6788
|
)
|
|
6652
6789
|
if system_message is not None:
|
|
@@ -6726,7 +6863,7 @@ class Agent:
|
|
|
6726
6863
|
videos=videos,
|
|
6727
6864
|
files=files,
|
|
6728
6865
|
knowledge_filters=knowledge_filters,
|
|
6729
|
-
|
|
6866
|
+
dependencies=dependencies,
|
|
6730
6867
|
add_dependencies_to_context=add_dependencies_to_context,
|
|
6731
6868
|
metadata=metadata,
|
|
6732
6869
|
**kwargs,
|
|
@@ -116,11 +116,17 @@ class MemoryManager:
|
|
|
116
116
|
|
|
117
117
|
async def aread_from_db(self, user_id: Optional[str] = None):
|
|
118
118
|
if self.db:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
if isinstance(self.db, AsyncBaseDb):
|
|
120
|
+
# If no user_id is provided, read all memories
|
|
121
|
+
if user_id is None:
|
|
122
|
+
all_memories: List[UserMemory] = await self.db.get_user_memories() # type: ignore
|
|
123
|
+
else:
|
|
124
|
+
all_memories = await self.db.get_user_memories(user_id=user_id) # type: ignore
|
|
122
125
|
else:
|
|
123
|
-
|
|
126
|
+
if user_id is None:
|
|
127
|
+
all_memories = self.db.get_user_memories() # type: ignore
|
|
128
|
+
else:
|
|
129
|
+
all_memories = self.db.get_user_memories(user_id=user_id) # type: ignore
|
|
124
130
|
|
|
125
131
|
memories: Dict[str, List[UserMemory]] = {}
|
|
126
132
|
for memory in all_memories:
|
|
@@ -434,7 +440,11 @@ class MemoryManager:
|
|
|
434
440
|
if user_id is None:
|
|
435
441
|
user_id = "default"
|
|
436
442
|
|
|
437
|
-
|
|
443
|
+
if isinstance(self.db, AsyncBaseDb):
|
|
444
|
+
memories = await self.aread_from_db(user_id=user_id)
|
|
445
|
+
else:
|
|
446
|
+
memories = self.read_from_db(user_id=user_id)
|
|
447
|
+
|
|
438
448
|
if memories is None:
|
|
439
449
|
memories = {}
|
|
440
450
|
|
|
@@ -453,7 +463,10 @@ class MemoryManager:
|
|
|
453
463
|
)
|
|
454
464
|
|
|
455
465
|
# We refresh from the DB
|
|
456
|
-
self.
|
|
466
|
+
if isinstance(self.db, AsyncBaseDb):
|
|
467
|
+
await self.aread_from_db(user_id=user_id)
|
|
468
|
+
else:
|
|
469
|
+
self.read_from_db(user_id=user_id)
|
|
457
470
|
|
|
458
471
|
return response
|
|
459
472
|
|
|
@@ -518,9 +518,9 @@ def attach_routes(router: APIRouter, knowledge_instances: List[Knowledge]) -> AP
|
|
|
518
518
|
@router.post(
|
|
519
519
|
"/knowledge/search",
|
|
520
520
|
status_code=200,
|
|
521
|
-
operation_id="
|
|
522
|
-
summary="Search
|
|
523
|
-
description="Search the knowledge base for relevant
|
|
521
|
+
operation_id="search_knowledge",
|
|
522
|
+
summary="Search Knowledge",
|
|
523
|
+
description="Search the knowledge base for relevant documents using query, filters and search type.",
|
|
524
524
|
response_model=PaginatedResponse[VectorSearchResult],
|
|
525
525
|
responses={
|
|
526
526
|
200: {
|
|
@@ -548,7 +548,7 @@ def attach_routes(router: APIRouter, knowledge_instances: List[Knowledge]) -> AP
|
|
|
548
548
|
404: {"description": "No documents found"},
|
|
549
549
|
},
|
|
550
550
|
)
|
|
551
|
-
def
|
|
551
|
+
def search_knowledge(request: VectorSearchRequestSchema) -> PaginatedResponse[VectorSearchResult]:
|
|
552
552
|
import time
|
|
553
553
|
|
|
554
554
|
start_time = time.time()
|