agno 2.0.4__tar.gz → 2.0.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.0.4 → agno-2.0.5}/PKG-INFO +6 -5
- {agno-2.0.4 → agno-2.0.5}/README.md +5 -4
- {agno-2.0.4 → agno-2.0.5}/agno/agent/agent.py +74 -85
- {agno-2.0.4 → agno-2.0.5}/agno/db/dynamo/dynamo.py +2 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/firestore/firestore.py +3 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/gcs_json/gcs_json_db.py +2 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/json/json_db.py +2 -2
- agno-2.0.5/agno/db/migrations/v1_to_v2.py +330 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mongo/mongo.py +61 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/mysql/mysql.py +5 -5
- {agno-2.0.4 → agno-2.0.5}/agno/db/mysql/schemas.py +27 -27
- {agno-2.0.4 → agno-2.0.5}/agno/db/postgres/postgres.py +5 -5
- {agno-2.0.4 → agno-2.0.5}/agno/db/redis/redis.py +2 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/singlestore/singlestore.py +2 -2
- {agno-2.0.4 → agno-2.0.5}/agno/db/sqlite/sqlite.py +6 -5
- {agno-2.0.4 → agno-2.0.5}/agno/db/utils.py +0 -14
- {agno-2.0.4 → agno-2.0.5}/agno/integrations/discord/client.py +1 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/knowledge.py +7 -7
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/reader_factory.py +7 -3
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/web_search_reader.py +12 -6
- {agno-2.0.4 → agno-2.0.5}/agno/models/message.py +109 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openai/responses.py +6 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/app.py +162 -42
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/agui/utils.py +98 -134
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/health.py +0 -1
- agno-2.0.5/agno/os/routers/home.py +52 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/knowledge/knowledge.py +2 -2
- {agno-2.0.4 → agno-2.0.5}/agno/os/schema.py +21 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/utils.py +0 -8
- {agno-2.0.4 → agno-2.0.5}/agno/run/agent.py +3 -3
- {agno-2.0.4 → agno-2.0.5}/agno/run/team.py +3 -3
- {agno-2.0.4 → agno-2.0.5}/agno/team/team.py +33 -38
- {agno-2.0.4 → agno-2.0.5}/agno/tools/duckduckgo.py +15 -11
- {agno-2.0.4 → agno-2.0.5}/agno/tools/googlesearch.py +1 -1
- {agno-2.0.4 → agno-2.0.5}/agno/utils/string.py +32 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/tools.py +1 -1
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/step.py +4 -3
- {agno-2.0.4 → agno-2.0.5}/agno.egg-info/PKG-INFO +6 -5
- {agno-2.0.4 → agno-2.0.5}/agno.egg-info/SOURCES.txt +1 -1
- {agno-2.0.4 → agno-2.0.5}/pyproject.toml +1 -1
- agno-2.0.4/agno/db/migrations/v1_to_v2.py +0 -162
- agno-2.0.4/agno/knowledge/reader/url_reader.py +0 -128
- {agno-2.0.4 → agno-2.0.5}/LICENSE +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/agent/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/agent.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/api.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/evals.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/os.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/routes.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/agent.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/evals.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/os.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/response.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/team.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/schemas/workflows.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/settings.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/team.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/api/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/cloud/aws/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/dynamo/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/firestore/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/firestore/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/firestore/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/gcs_json/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/in_memory/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/json/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/json/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/migrations/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mongo/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mongo/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mongo/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mysql/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/mysql/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/postgres/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/postgres/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/postgres/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/redis/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/redis/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/redis/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/schemas/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/schemas/evals.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/schemas/memory.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/schemas/metrics.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/singlestore/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/db/sqlite/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/debug.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/eval/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/eval/accuracy.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/eval/performance.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/eval/reliability.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/eval/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/exceptions.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/integrations/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/agentic.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/document.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/fixed.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/markdown.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/recursive.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/row.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/semantic.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/chunking/strategy.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/content.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/document/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/mistral.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/text_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/types.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/knowledge/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/media.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/memory/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/memory/manager.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/aimlapi/aimlapi.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/anthropic/claude.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/aws/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/aws/bedrock.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/aws/claude.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/azure/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/cerebras/cerebras.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/cerebras/cerebras_openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/cohere/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/cohere/chat.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/deepinfra/deepinfra.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/defaults.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/fireworks/fireworks.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/google/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/google/gemini.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/groq/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/groq/groq.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/huggingface/huggingface.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/ibm/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/ibm/watsonx.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/internlm/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/internlm/internlm.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/langdb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/langdb/langdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/litellm/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/litellm/chat.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/litellm/litellm_openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/meta/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/meta/llama.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/meta/llama_openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/metrics.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/mistral/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/mistral/mistral.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/nebius/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/nebius/nebius.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/nvidia/nvidia.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/ollama/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/ollama/chat.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openai/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openai/chat.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openai/like.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/openrouter/openrouter.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/perplexity/perplexity.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/portkey/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/portkey/portkey.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/response.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/sambanova/sambanova.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/siliconflow/siliconflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/together/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/together/together.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/vercel/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/vercel/v0.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/vllm/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/vllm/vllm.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/xai/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/models/xai/xai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/auth.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/config.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/mcp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/router.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/evals/evals.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/evals/utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/knowledge/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/memory/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/metrics/schemas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/routers/session/session.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/os/settings.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/py.typed +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/deepseek.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/default.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/groq.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/helpers.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/ollama.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/reasoning/step.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/run/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/run/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/run/cancel.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/run/messages.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/run/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/session/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/session/agent.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/session/summary.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/session/team.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/session/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/team/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/agentql.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/airflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/api.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/apify.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/arxiv.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/aws_lambda.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/aws_ses.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/baidusearch.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/bitbucket.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/brandfetch.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/bravesearch.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/brightdata.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/browserbase.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/calcom.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/calculator.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/cartesia.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/clickup.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/confluence.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/crawl4ai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/dalle.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/daytona.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/decorator.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/desi_vocal.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/discord.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/docker.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/duckdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/e2b.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/eleven_labs.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/email.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/evm.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/exa.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/fal.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/file.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/financial_datasets.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/firecrawl.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/function.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/giphy.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/github.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/gmail.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/google_bigquery.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/google_maps.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/googlecalendar.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/googlesheets.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/hackernews.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/jina.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/jira.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/knowledge.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/linear.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/linkup.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/local_file_system.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/lumalab.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/mcp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/mem0.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/memori.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/memory.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/gemini.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/groq.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/morph.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models/nebius.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/models_labs.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/moviepy_video.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/neo4j.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/newspaper.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/newspaper4k.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/openbb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/opencv.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/openweather.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/oxylabs.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/pandas.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/postgres.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/pubmed.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/python.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/reasoning.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/reddit.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/replicate.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/resend.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/scrapegraph.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/searxng.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/serpapi.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/serper.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/shell.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/slack.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/sleep.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/spider.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/sql.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/streamlit/components.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/tavily.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/telegram.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/todoist.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/tool_registry.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/toolkit.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/trafilatura.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/trello.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/twilio.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/user_control_flow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/valyu.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/visualization.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/webbrowser.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/webex.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/website.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/webtools.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/whatsapp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/wikipedia.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/x.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/yfinance.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/youtube.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/zendesk.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/zep.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/tools/zoom.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/audio.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/certs.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/code_execution.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/common.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/dttm.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/enum.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/env.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/events.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/format_str.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/functions.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/gemini.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/http.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/json_schema.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/knowledge.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/location.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/log.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/mcp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/media.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/merge_dict.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/message.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/aws_claude.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/claude.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/cohere.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/llama.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/mistral.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/models/watsonx.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/openai.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/pickle.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/pprint.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/print_response/agent.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/print_response/team.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/prompts.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/reasoning.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/response.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/response_iterator.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/safe_formatter.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/shell.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/streamlit.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/team.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/timer.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/web.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/whatsapp.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/utils/yaml_io.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/base.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/distance.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/search.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/weaviate/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/__init__.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/condition.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/loop.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/parallel.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/router.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/steps.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/types.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno/workflow/workflow.py +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno.egg-info/requires.txt +0 -0
- {agno-2.0.4 → agno-2.0.5}/agno.egg-info/top_level.txt +0 -0
- {agno-2.0.4 → agno-2.0.5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.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
|
|
@@ -366,6 +366,7 @@ Dynamic: license-file
|
|
|
366
366
|
<div align="center">
|
|
367
367
|
<a href="https://docs.agno.com">📚 Documentation</a> |
|
|
368
368
|
<a href="https://docs.agno.com/examples/introduction">💡 Examples</a> |
|
|
369
|
+
<a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github&utm_content=header">🏠 Website</a> |
|
|
369
370
|
<a href="https://github.com/agno-agi/agno/stargazers">🌟 Star Us</a>
|
|
370
371
|
</div>
|
|
371
372
|
|
|
@@ -406,14 +407,14 @@ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introductio
|
|
|
406
407
|
|
|
407
408
|
After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
|
|
408
409
|
|
|
409
|
-
## Documentation, Community & More
|
|
410
|
+
## Documentation, Community & More Examples
|
|
410
411
|
|
|
411
412
|
- Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
|
|
412
413
|
- Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
|
|
413
414
|
- Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
|
|
414
415
|
- Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
|
|
415
416
|
|
|
416
|
-
## Setup
|
|
417
|
+
## Setup Your Coding Agent to Use Agno
|
|
417
418
|
|
|
418
419
|
For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file.
|
|
419
420
|
|
|
@@ -441,7 +442,7 @@ At Agno, we're obsessed with performance. Why? because even simple AI workflows
|
|
|
441
442
|
|
|
442
443
|
While an Agent's run-time is bottlenecked by inference, we must do everything possible to minimize execution time, reduce memory usage, and parallelize tool calls. These numbers may seem trivial at first, but our experience shows that they add up even at a reasonably small scale.
|
|
443
444
|
|
|
444
|
-
### Instantiation
|
|
445
|
+
### Instantiation Time
|
|
445
446
|
|
|
446
447
|
Let's measure the time it takes for an Agent with 1 tool to start up. We'll run the evaluation 1000 times to get a baseline measurement.
|
|
447
448
|
|
|
@@ -469,7 +470,7 @@ Agno is on the left, notice how it finishes before LangGraph gets 1/2 way throug
|
|
|
469
470
|
|
|
470
471
|
https://github.com/user-attachments/assets/ba466d45-75dd-45ac-917b-0a56c5742e23
|
|
471
472
|
|
|
472
|
-
### Memory
|
|
473
|
+
### Memory Usage
|
|
473
474
|
|
|
474
475
|
To measure memory usage, we use the `tracemalloc` library. We first calculate a baseline memory usage by running an empty function, then run the Agent 1000x times and calculate the difference. This gives a (reasonably) isolated measurement of the memory usage of the Agent.
|
|
475
476
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<div align="center">
|
|
11
11
|
<a href="https://docs.agno.com">📚 Documentation</a> |
|
|
12
12
|
<a href="https://docs.agno.com/examples/introduction">💡 Examples</a> |
|
|
13
|
+
<a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github&utm_content=header">🏠 Website</a> |
|
|
13
14
|
<a href="https://github.com/agno-agi/agno/stargazers">🌟 Star Us</a>
|
|
14
15
|
</div>
|
|
15
16
|
|
|
@@ -50,14 +51,14 @@ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introductio
|
|
|
50
51
|
|
|
51
52
|
After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
|
|
52
53
|
|
|
53
|
-
## Documentation, Community & More
|
|
54
|
+
## Documentation, Community & More Examples
|
|
54
55
|
|
|
55
56
|
- Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
|
|
56
57
|
- Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
|
|
57
58
|
- Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
|
|
58
59
|
- Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
|
|
59
60
|
|
|
60
|
-
## Setup
|
|
61
|
+
## Setup Your Coding Agent to Use Agno
|
|
61
62
|
|
|
62
63
|
For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file.
|
|
63
64
|
|
|
@@ -85,7 +86,7 @@ At Agno, we're obsessed with performance. Why? because even simple AI workflows
|
|
|
85
86
|
|
|
86
87
|
While an Agent's run-time is bottlenecked by inference, we must do everything possible to minimize execution time, reduce memory usage, and parallelize tool calls. These numbers may seem trivial at first, but our experience shows that they add up even at a reasonably small scale.
|
|
87
88
|
|
|
88
|
-
### Instantiation
|
|
89
|
+
### Instantiation Time
|
|
89
90
|
|
|
90
91
|
Let's measure the time it takes for an Agent with 1 tool to start up. We'll run the evaluation 1000 times to get a baseline measurement.
|
|
91
92
|
|
|
@@ -113,7 +114,7 @@ Agno is on the left, notice how it finishes before LangGraph gets 1/2 way throug
|
|
|
113
114
|
|
|
114
115
|
https://github.com/user-attachments/assets/ba466d45-75dd-45ac-917b-0a56c5742e23
|
|
115
116
|
|
|
116
|
-
### Memory
|
|
117
|
+
### Memory Usage
|
|
117
118
|
|
|
118
119
|
To measure memory usage, we use the `tracemalloc` library. We first calculate a baseline memory usage by running an empty function, then run the Agent 1000x times and calculate the difference. This gives a (reasonably) isolated measurement of the memory usage of the Agent.
|
|
119
120
|
|
|
@@ -107,7 +107,7 @@ from agno.utils.response import (
|
|
|
107
107
|
get_paused_content,
|
|
108
108
|
)
|
|
109
109
|
from agno.utils.safe_formatter import SafeFormatter
|
|
110
|
-
from agno.utils.string import parse_response_model_str
|
|
110
|
+
from agno.utils.string import generate_id_from_name, parse_response_model_str
|
|
111
111
|
from agno.utils.timer import Timer
|
|
112
112
|
|
|
113
113
|
|
|
@@ -545,10 +545,7 @@ class Agent:
|
|
|
545
545
|
|
|
546
546
|
def set_id(self) -> None:
|
|
547
547
|
if self.id is None:
|
|
548
|
-
|
|
549
|
-
self.id = self.name.lower().replace(" ", "-")
|
|
550
|
-
else:
|
|
551
|
-
self.id = str(uuid4())
|
|
548
|
+
self.id = generate_id_from_name(self.name)
|
|
552
549
|
|
|
553
550
|
def _set_debug(self, debug_mode: Optional[bool] = None) -> None:
|
|
554
551
|
# If the default debug mode is set, or passed on run, or via environment variable, set the debug mode to True
|
|
@@ -790,14 +787,7 @@ class Agent:
|
|
|
790
787
|
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
791
788
|
)
|
|
792
789
|
|
|
793
|
-
# 4.
|
|
794
|
-
response_iterator = self._make_memories_and_summaries(
|
|
795
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
796
|
-
)
|
|
797
|
-
# Consume the response iterator to ensure the memory is updated before the run is completed
|
|
798
|
-
deque(response_iterator, maxlen=0)
|
|
799
|
-
|
|
800
|
-
# 5. Calculate session metrics
|
|
790
|
+
# 4. Calculate session metrics
|
|
801
791
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
802
792
|
|
|
803
793
|
run_response.status = RunStatus.completed
|
|
@@ -809,14 +799,21 @@ class Agent:
|
|
|
809
799
|
if run_response.metrics:
|
|
810
800
|
run_response.metrics.stop_timer()
|
|
811
801
|
|
|
812
|
-
#
|
|
802
|
+
# 5. Optional: Save output to file if save_response_to_file is set
|
|
813
803
|
self.save_run_response_to_file(
|
|
814
804
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
815
805
|
)
|
|
816
806
|
|
|
817
|
-
#
|
|
807
|
+
# 6. Add the RunOutput to Agent Session
|
|
818
808
|
session.upsert_run(run=run_response)
|
|
819
809
|
|
|
810
|
+
# 7. Update Agent Memory
|
|
811
|
+
response_iterator = self._make_memories_and_summaries(
|
|
812
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
813
|
+
)
|
|
814
|
+
# Consume the response iterator to ensure the memory is updated before the run is completed
|
|
815
|
+
deque(response_iterator, maxlen=0)
|
|
816
|
+
|
|
820
817
|
# 8. Save session to memory
|
|
821
818
|
self.save_session(session=session)
|
|
822
819
|
|
|
@@ -930,12 +927,7 @@ class Agent:
|
|
|
930
927
|
)
|
|
931
928
|
return
|
|
932
929
|
|
|
933
|
-
# 3.
|
|
934
|
-
yield from self._make_memories_and_summaries(
|
|
935
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
936
|
-
)
|
|
937
|
-
|
|
938
|
-
# 4. Calculate session metrics
|
|
930
|
+
# 3. Calculate session metrics
|
|
939
931
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
940
932
|
|
|
941
933
|
run_response.status = RunStatus.completed
|
|
@@ -948,7 +940,7 @@ class Agent:
|
|
|
948
940
|
if run_response.metrics:
|
|
949
941
|
run_response.metrics.stop_timer()
|
|
950
942
|
|
|
951
|
-
#
|
|
943
|
+
# 4. Optional: Save output to file if save_response_to_file is set
|
|
952
944
|
self.save_run_response_to_file(
|
|
953
945
|
run_response=run_response,
|
|
954
946
|
input=run_messages.user_message,
|
|
@@ -956,9 +948,14 @@ class Agent:
|
|
|
956
948
|
user_id=user_id,
|
|
957
949
|
)
|
|
958
950
|
|
|
959
|
-
#
|
|
951
|
+
# 5. Add RunOutput to Agent Session
|
|
960
952
|
session.upsert_run(run=run_response)
|
|
961
953
|
|
|
954
|
+
# 6. Update Agent Memory
|
|
955
|
+
yield from self._make_memories_and_summaries(
|
|
956
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
957
|
+
)
|
|
958
|
+
|
|
962
959
|
# 7. Save session to storage
|
|
963
960
|
self.save_session(session=session)
|
|
964
961
|
|
|
@@ -1383,13 +1380,7 @@ class Agent:
|
|
|
1383
1380
|
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
1384
1381
|
)
|
|
1385
1382
|
|
|
1386
|
-
# 6.
|
|
1387
|
-
async for _ in self._amake_memories_and_summaries(
|
|
1388
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
1389
|
-
):
|
|
1390
|
-
pass
|
|
1391
|
-
|
|
1392
|
-
# 7. Calculate session metrics
|
|
1383
|
+
# 6. Calculate session metrics
|
|
1393
1384
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
1394
1385
|
|
|
1395
1386
|
run_response.status = RunStatus.completed
|
|
@@ -1406,9 +1397,15 @@ class Agent:
|
|
|
1406
1397
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
1407
1398
|
)
|
|
1408
1399
|
|
|
1409
|
-
#
|
|
1400
|
+
# 7. Add RunOutput to Agent Session
|
|
1410
1401
|
session.upsert_run(run=run_response)
|
|
1411
1402
|
|
|
1403
|
+
# 8. Update Agent Memory
|
|
1404
|
+
async for _ in self._amake_memories_and_summaries(
|
|
1405
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
1406
|
+
):
|
|
1407
|
+
pass
|
|
1408
|
+
|
|
1412
1409
|
# 9. Save session to storage
|
|
1413
1410
|
self.save_session(session=session)
|
|
1414
1411
|
|
|
@@ -1563,13 +1560,7 @@ class Agent:
|
|
|
1563
1560
|
yield item
|
|
1564
1561
|
return
|
|
1565
1562
|
|
|
1566
|
-
# 5.
|
|
1567
|
-
async for event in self._amake_memories_and_summaries(
|
|
1568
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
1569
|
-
):
|
|
1570
|
-
yield event
|
|
1571
|
-
|
|
1572
|
-
# 6. Calculate session metrics
|
|
1563
|
+
# 5. Calculate session metrics
|
|
1573
1564
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
1574
1565
|
|
|
1575
1566
|
run_response.status = RunStatus.completed
|
|
@@ -1590,9 +1581,15 @@ class Agent:
|
|
|
1590
1581
|
user_id=user_id,
|
|
1591
1582
|
)
|
|
1592
1583
|
|
|
1593
|
-
#
|
|
1584
|
+
# 6. Add RunOutput to Agent Session
|
|
1594
1585
|
session.upsert_run(run=run_response)
|
|
1595
1586
|
|
|
1587
|
+
# 7. Update Agent Memory
|
|
1588
|
+
async for event in self._amake_memories_and_summaries(
|
|
1589
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
1590
|
+
):
|
|
1591
|
+
yield event
|
|
1592
|
+
|
|
1596
1593
|
# 8. Save session to storage
|
|
1597
1594
|
self.save_session(session=session)
|
|
1598
1595
|
|
|
@@ -2177,14 +2174,7 @@ class Agent:
|
|
|
2177
2174
|
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2178
2175
|
)
|
|
2179
2176
|
|
|
2180
|
-
#
|
|
2181
|
-
response_iterator = self._make_memories_and_summaries(
|
|
2182
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2183
|
-
)
|
|
2184
|
-
# Consume the response iterator to ensure the memory is updated before the run is completed
|
|
2185
|
-
deque(response_iterator, maxlen=0)
|
|
2186
|
-
|
|
2187
|
-
# 5. Calculate session metrics
|
|
2177
|
+
# 3. Calculate session metrics
|
|
2188
2178
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
2189
2179
|
|
|
2190
2180
|
run_response.status = RunStatus.completed
|
|
@@ -2196,14 +2186,21 @@ class Agent:
|
|
|
2196
2186
|
if run_response.metrics:
|
|
2197
2187
|
run_response.metrics.stop_timer()
|
|
2198
2188
|
|
|
2199
|
-
#
|
|
2189
|
+
# 4. Save output to file if save_response_to_file is set
|
|
2200
2190
|
self.save_run_response_to_file(
|
|
2201
2191
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
2202
2192
|
)
|
|
2203
2193
|
|
|
2204
|
-
#
|
|
2194
|
+
# 5. Add the run to memory
|
|
2205
2195
|
session.upsert_run(run=run_response)
|
|
2206
2196
|
|
|
2197
|
+
# 6. Update Agent Memory
|
|
2198
|
+
response_iterator = self._make_memories_and_summaries(
|
|
2199
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2200
|
+
)
|
|
2201
|
+
# Consume the response iterator to ensure the memory is updated before the run is completed
|
|
2202
|
+
deque(response_iterator, maxlen=0)
|
|
2203
|
+
|
|
2207
2204
|
# 7. Save session to storage
|
|
2208
2205
|
self.save_session(session=session)
|
|
2209
2206
|
|
|
@@ -2261,12 +2258,7 @@ class Agent:
|
|
|
2261
2258
|
)
|
|
2262
2259
|
return
|
|
2263
2260
|
|
|
2264
|
-
#
|
|
2265
|
-
yield from self._make_memories_and_summaries(
|
|
2266
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2267
|
-
)
|
|
2268
|
-
|
|
2269
|
-
# 5. Calculate session metrics
|
|
2261
|
+
# 3. Calculate session metrics
|
|
2270
2262
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
2271
2263
|
|
|
2272
2264
|
run_response.status = RunStatus.completed
|
|
@@ -2277,14 +2269,19 @@ class Agent:
|
|
|
2277
2269
|
if run_response.metrics:
|
|
2278
2270
|
run_response.metrics.stop_timer()
|
|
2279
2271
|
|
|
2280
|
-
#
|
|
2272
|
+
# 4. Save output to file if save_response_to_file is set
|
|
2281
2273
|
self.save_run_response_to_file(
|
|
2282
2274
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
2283
2275
|
)
|
|
2284
2276
|
|
|
2285
|
-
#
|
|
2277
|
+
# 5. Add the run to memory
|
|
2286
2278
|
session.upsert_run(run=run_response)
|
|
2287
2279
|
|
|
2280
|
+
# 6. Update Agent Memory
|
|
2281
|
+
yield from self._make_memories_and_summaries(
|
|
2282
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2283
|
+
)
|
|
2284
|
+
|
|
2288
2285
|
# 7. Save session to storage
|
|
2289
2286
|
self.save_session(session=session)
|
|
2290
2287
|
|
|
@@ -2563,13 +2560,7 @@ class Agent:
|
|
|
2563
2560
|
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2564
2561
|
)
|
|
2565
2562
|
|
|
2566
|
-
#
|
|
2567
|
-
async for _ in self._amake_memories_and_summaries(
|
|
2568
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2569
|
-
):
|
|
2570
|
-
pass
|
|
2571
|
-
|
|
2572
|
-
# 5. Calculate session metrics
|
|
2563
|
+
# 3. Calculate session metrics
|
|
2573
2564
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
2574
2565
|
|
|
2575
2566
|
run_response.status = RunStatus.completed
|
|
@@ -2581,14 +2572,21 @@ class Agent:
|
|
|
2581
2572
|
if run_response.metrics:
|
|
2582
2573
|
run_response.metrics.stop_timer()
|
|
2583
2574
|
|
|
2584
|
-
#
|
|
2575
|
+
# 4. Save output to file if save_response_to_file is set
|
|
2585
2576
|
self.save_run_response_to_file(
|
|
2586
2577
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
2587
2578
|
)
|
|
2588
2579
|
|
|
2580
|
+
# 5. Add the run to memory
|
|
2589
2581
|
session.upsert_run(run=run_response)
|
|
2590
2582
|
|
|
2591
|
-
# 6.
|
|
2583
|
+
# 6. Update Agent Memory
|
|
2584
|
+
async for _ in self._amake_memories_and_summaries(
|
|
2585
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2586
|
+
):
|
|
2587
|
+
pass
|
|
2588
|
+
|
|
2589
|
+
# 7. Save session to storage
|
|
2592
2590
|
self.save_session(session=session)
|
|
2593
2591
|
|
|
2594
2592
|
# Log Agent Telemetry
|
|
@@ -2644,9 +2642,6 @@ class Agent:
|
|
|
2644
2642
|
):
|
|
2645
2643
|
yield event
|
|
2646
2644
|
|
|
2647
|
-
# 3. Add the run to memory
|
|
2648
|
-
session.upsert_run(run=run_response)
|
|
2649
|
-
|
|
2650
2645
|
# We should break out of the run function
|
|
2651
2646
|
if any(tool_call.is_paused for tool_call in run_response.tools or []):
|
|
2652
2647
|
for item in self._handle_agent_run_paused_stream(
|
|
@@ -2655,13 +2650,7 @@ class Agent:
|
|
|
2655
2650
|
yield item
|
|
2656
2651
|
return
|
|
2657
2652
|
|
|
2658
|
-
#
|
|
2659
|
-
async for event in self._amake_memories_and_summaries(
|
|
2660
|
-
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2661
|
-
):
|
|
2662
|
-
yield event
|
|
2663
|
-
|
|
2664
|
-
# 5. Calculate session metrics
|
|
2653
|
+
# 3. Calculate session metrics
|
|
2665
2654
|
self._update_session_metrics(session=session, run_response=run_response)
|
|
2666
2655
|
|
|
2667
2656
|
run_response.status = RunStatus.completed
|
|
@@ -2672,14 +2661,21 @@ class Agent:
|
|
|
2672
2661
|
if run_response.metrics:
|
|
2673
2662
|
run_response.metrics.stop_timer()
|
|
2674
2663
|
|
|
2675
|
-
#
|
|
2664
|
+
# 4. Save output to file if save_response_to_file is set
|
|
2676
2665
|
self.save_run_response_to_file(
|
|
2677
2666
|
run_response=run_response, input=run_messages.user_message, session_id=session.session_id, user_id=user_id
|
|
2678
2667
|
)
|
|
2679
2668
|
|
|
2669
|
+
# 5. Add the run to memory
|
|
2680
2670
|
session.upsert_run(run=run_response)
|
|
2681
2671
|
|
|
2682
|
-
# 6.
|
|
2672
|
+
# 6. Update Agent Memory
|
|
2673
|
+
async for event in self._amake_memories_and_summaries(
|
|
2674
|
+
run_response=run_response, run_messages=run_messages, session=session, user_id=user_id
|
|
2675
|
+
):
|
|
2676
|
+
yield event
|
|
2677
|
+
|
|
2678
|
+
# 7. Save session to storage
|
|
2683
2679
|
self.save_session(session=session)
|
|
2684
2680
|
|
|
2685
2681
|
if stream_intermediate_steps:
|
|
@@ -3336,13 +3332,6 @@ class Agent:
|
|
|
3336
3332
|
) + model_response_event.reasoning_content
|
|
3337
3333
|
run_response.reasoning_content = model_response.reasoning_content
|
|
3338
3334
|
|
|
3339
|
-
if model_response_event.reasoning_content is not None:
|
|
3340
|
-
if not model_response.reasoning_content:
|
|
3341
|
-
model_response.reasoning_content = model_response_event.reasoning_content
|
|
3342
|
-
else:
|
|
3343
|
-
model_response.reasoning_content += model_response_event.reasoning_content
|
|
3344
|
-
run_response.reasoning_content = model_response.reasoning_content
|
|
3345
|
-
|
|
3346
3335
|
if model_response_event.redacted_reasoning_content is not None:
|
|
3347
3336
|
if not model_response.reasoning_content:
|
|
3348
3337
|
model_response.reasoning_content = model_response_event.redacted_reasoning_content
|
|
@@ -30,9 +30,9 @@ from agno.db.dynamo.utils import (
|
|
|
30
30
|
from agno.db.schemas.evals import EvalFilterType, EvalRunRecord, EvalType
|
|
31
31
|
from agno.db.schemas.knowledge import KnowledgeRow
|
|
32
32
|
from agno.db.schemas.memory import UserMemory
|
|
33
|
-
from agno.db.utils import generate_deterministic_id
|
|
34
33
|
from agno.session import AgentSession, Session, TeamSession, WorkflowSession
|
|
35
34
|
from agno.utils.log import log_debug, log_error
|
|
35
|
+
from agno.utils.string import generate_id
|
|
36
36
|
|
|
37
37
|
try:
|
|
38
38
|
import boto3 # type: ignore[import-untyped]
|
|
@@ -75,7 +75,7 @@ class DynamoDb(BaseDb):
|
|
|
75
75
|
"""
|
|
76
76
|
if id is None:
|
|
77
77
|
seed = str(db_client) if db_client else f"{region_name}_{aws_access_key_id}"
|
|
78
|
-
id =
|
|
78
|
+
id = generate_id(seed)
|
|
79
79
|
|
|
80
80
|
super().__init__(
|
|
81
81
|
id=id,
|
|
@@ -16,9 +16,10 @@ from agno.db.firestore.utils import (
|
|
|
16
16
|
from agno.db.schemas.evals import EvalFilterType, EvalRunRecord, EvalType
|
|
17
17
|
from agno.db.schemas.knowledge import KnowledgeRow
|
|
18
18
|
from agno.db.schemas.memory import UserMemory
|
|
19
|
-
from agno.db.utils import deserialize_session_json_fields,
|
|
19
|
+
from agno.db.utils import deserialize_session_json_fields, serialize_session_json_fields
|
|
20
20
|
from agno.session import AgentSession, Session, TeamSession, WorkflowSession
|
|
21
21
|
from agno.utils.log import log_debug, log_error, log_info
|
|
22
|
+
from agno.utils.string import generate_id
|
|
22
23
|
|
|
23
24
|
try:
|
|
24
25
|
from google.cloud.firestore import Client, FieldFilter # type: ignore[import-untyped]
|
|
@@ -58,7 +59,7 @@ class FirestoreDb(BaseDb):
|
|
|
58
59
|
"""
|
|
59
60
|
if id is None:
|
|
60
61
|
seed = project_id or str(db_client)
|
|
61
|
-
id =
|
|
62
|
+
id = generate_id(seed)
|
|
62
63
|
|
|
63
64
|
super().__init__(
|
|
64
65
|
id=id,
|
|
@@ -14,9 +14,9 @@ from agno.db.gcs_json.utils import (
|
|
|
14
14
|
from agno.db.schemas.evals import EvalFilterType, EvalRunRecord, EvalType
|
|
15
15
|
from agno.db.schemas.knowledge import KnowledgeRow
|
|
16
16
|
from agno.db.schemas.memory import UserMemory
|
|
17
|
-
from agno.db.utils import generate_deterministic_id
|
|
18
17
|
from agno.session import AgentSession, Session, TeamSession, WorkflowSession
|
|
19
18
|
from agno.utils.log import log_debug, log_error, log_info, log_warning
|
|
19
|
+
from agno.utils.string import generate_id
|
|
20
20
|
|
|
21
21
|
try:
|
|
22
22
|
from google.cloud import storage as gcs # type: ignore
|
|
@@ -57,7 +57,7 @@ class GcsJsonDb(BaseDb):
|
|
|
57
57
|
if id is None:
|
|
58
58
|
prefix_suffix = prefix or "agno/"
|
|
59
59
|
seed = f"{bucket_name}_{project}#{prefix_suffix}"
|
|
60
|
-
id =
|
|
60
|
+
id = generate_id(seed)
|
|
61
61
|
|
|
62
62
|
super().__init__(
|
|
63
63
|
id=id,
|
|
@@ -17,9 +17,9 @@ from agno.db.json.utils import (
|
|
|
17
17
|
from agno.db.schemas.evals import EvalFilterType, EvalRunRecord, EvalType
|
|
18
18
|
from agno.db.schemas.knowledge import KnowledgeRow
|
|
19
19
|
from agno.db.schemas.memory import UserMemory
|
|
20
|
-
from agno.db.utils import generate_deterministic_id
|
|
21
20
|
from agno.session import AgentSession, Session, TeamSession, WorkflowSession
|
|
22
21
|
from agno.utils.log import log_debug, log_error, log_info, log_warning
|
|
22
|
+
from agno.utils.string import generate_id
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class JsonDb(BaseDb):
|
|
@@ -47,7 +47,7 @@ class JsonDb(BaseDb):
|
|
|
47
47
|
"""
|
|
48
48
|
if id is None:
|
|
49
49
|
seed = db_path or "agno_json_db"
|
|
50
|
-
id =
|
|
50
|
+
id = generate_id(seed)
|
|
51
51
|
|
|
52
52
|
super().__init__(
|
|
53
53
|
id=id,
|