agno 2.4.4__tar.gz → 2.4.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agno-2.4.4 → agno-2.4.6}/PKG-INFO +36 -58
- agno-2.4.6/README.md +109 -0
- {agno-2.4.4 → agno-2.4.6}/agno/agent/agent.py +47 -39
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/models.py +1 -1
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/agentic.py +1 -5
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/code.py +1 -1
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/document.py +22 -42
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/fixed.py +1 -5
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/markdown.py +9 -25
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/recursive.py +1 -3
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/row.py +3 -2
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/semantic.py +1 -1
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/strategy.py +19 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/knowledge.py +181 -24
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/text_reader.py +1 -1
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/learned_knowledge.py +108 -131
- {agno-2.4.4 → agno-2.4.6}/agno/team/team.py +27 -20
- agno-2.4.6/agno/tools/seltz.py +134 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/agent.py +8 -8
- {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/team.py +8 -8
- {agno-2.4.4 → agno-2.4.6}/agno.egg-info/PKG-INFO +36 -58
- {agno-2.4.4 → agno-2.4.6}/agno.egg-info/SOURCES.txt +1 -0
- {agno-2.4.4 → agno-2.4.6}/agno.egg-info/requires.txt +5 -1
- {agno-2.4.4 → agno-2.4.6}/pyproject.toml +5 -2
- agno-2.4.4/README.md +0 -134
- {agno-2.4.4 → agno-2.4.6}/LICENSE +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/agent/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/agent/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/api.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/os.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/routes.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/os.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/response.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/team.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/schemas/workflows.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/settings.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/team.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/api/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/client.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/a2a/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/client/os.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/compression/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/compression/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/culture/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/culture/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/async_postgres/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/dynamo.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/dynamo/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/firestore.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/firestore/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/gcs_json_db.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/gcs_json/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/in_memory/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/json/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/json/json_db.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/json/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/v1_to_v2.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/versions/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/migrations/versions/v2_3_0.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/async_mongo.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/mongo.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mongo/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/async_mysql.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/mysql.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/mysql/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/async_postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/postgres/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/redis/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/redis/redis.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/redis/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/redis/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/culture.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/schemas/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/singlestore.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/singlestore/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/async_sqlite.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/sqlite.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/sqlite/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/queries.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/surrealdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/surrealdb/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/db/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/debug.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/accuracy.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/agent_as_judge.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/performance.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/reliability.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/eval/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/exceptions.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/filters.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/guardrails/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/guardrails/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/guardrails/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/guardrails/pii.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/guardrails/prompt_injection.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/hooks/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/hooks/decorator.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/integrations/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/integrations/discord/client.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/content.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/document/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/vllm.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/filesystem.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/protocol.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/excel_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/pptx_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/reader_factory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/tavily_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/utils/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/utils/spreadsheet.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/web_search_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/config.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/types.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/knowledge/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/config.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/curate.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/machine.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/decision_log.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/entity_memory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/protocol.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/session_context.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/user_memory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/stores/user_profile.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/learn/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/media.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/summarize.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/memory/strategies/types.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/aimlapi/aimlapi.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/anthropic/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/aws/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/aws/bedrock.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/aws/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/azure/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/cerebras.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cerebras/cerebras_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cohere/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cohere/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cometapi/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/cometapi/cometapi.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/deepinfra/deepinfra.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/defaults.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/fireworks/fireworks.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/google/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/google/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/google/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/groq/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/groq/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/huggingface/huggingface.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/ibm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/ibm/watsonx.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/internlm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/internlm/internlm.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/langdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/langdb/langdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/litellm/litellm_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/llama_cpp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/llama_cpp/llama_cpp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/message.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/meta/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/meta/llama.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/meta/llama_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/mistral/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/mistral/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/moonshot/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/moonshot/moonshot.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/n1n/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/n1n/n1n.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nebius/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nebius/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nexus/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nexus/nexus.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/nvidia/nvidia.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/ollama/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openai/chat.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openai/like.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openai/open_responses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openai/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/openrouter.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/openrouter/responses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/perplexity/perplexity.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/portkey/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/portkey/portkey.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/requesty/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/requesty/requesty.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/response.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/sambanova/sambanova.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/siliconflow/siliconflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/together/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/together/together.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vercel/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vercel/v0.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vertexai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vertexai/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vllm/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/vllm/vllm.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/xai/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/models/xai/xai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/app.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/auth.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/config.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/a2a.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/a2a/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/agui/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/managers.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/jwt.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/middleware/trailing_slash.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/agents/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/components/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/components/components.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/database.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/evals.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/evals/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/health.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/home.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/knowledge/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/memory/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/metrics/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/registry/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/registry/registry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/session/session.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/teams/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/traces/traces.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/routers/workflows/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/schema.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/scopes.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/settings.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/os/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/py.typed +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/anthropic.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/deepseek.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/default.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/helpers.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/ollama.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/step.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/reasoning/vertexai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/registry/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/registry/registry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/remote/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/remote/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/cancel.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/in_memory_cancellation_manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/cancellation_management/redis_cancellation_manager.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/messages.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/requirement.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/team.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/run/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/session/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/session/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/session/summary.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/session/team.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/session/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/agent_skills.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/errors.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/loaders/local.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/skill.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/skills/validator.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/table.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/team/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/team/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/agentql.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/airflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/api.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/apify.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/arxiv.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/aws_lambda.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/aws_ses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/baidusearch.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/bitbucket.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/brandfetch.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/bravesearch.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/brightdata.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/browserbase.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/calcom.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/calculator.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/cartesia.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/clickup.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/confluence.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/crawl4ai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/dalle.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/daytona.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/decorator.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/desi_vocal.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/discord.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/docker.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/duckdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/duckduckgo.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/e2b.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/eleven_labs.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/email.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/evm.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/exa.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/fal.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/file.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/file_generation.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/financial_datasets.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/firecrawl.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/function.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/giphy.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/github.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/gmail.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/google_bigquery.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/google_drive.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/google_maps.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/googlecalendar.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/googlesheets.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/hackernews.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/jina.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/jira.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/linear.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/linkup.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/local_file_system.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/lumalab.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/multi_mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp/params.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mcp_toolbox.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mem0.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/memory.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/groq.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/morph.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models/nebius.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/models_labs.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/moviepy_video.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/nano_banana.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/neo4j.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/newspaper.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/newspaper4k.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/notion.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/openbb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/opencv.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/openweather.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/oxylabs.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/pandas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/parallel.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/postgres.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/pubmed.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/python.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/reasoning.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/reddit.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/redshift.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/replicate.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/resend.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/scrapegraph.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/searxng.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/serpapi.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/serper.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/shell.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/shopify.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/slack.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/sleep.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/spider.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/spotify.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/sql.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/streamlit/components.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/tavily.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/telegram.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/todoist.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/tool_registry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/toolkit.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/trafilatura.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/trello.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/twilio.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/unsplash.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/user_control_flow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/valyu.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/visualization.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/webbrowser.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/webex.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/websearch.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/website.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/webtools.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/wikipedia.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/x.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/yfinance.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/youtube.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/zendesk.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/zep.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tools/zoom.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tracing/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tracing/exporter.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tracing/schemas.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/tracing/setup.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/audio.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/certs.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/code_execution.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/common.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/cryptography.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/dttm.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/enum.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/env.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/events.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/format_str.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/functions.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/gemini.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/hooks.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/http.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/json_schema.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/knowledge.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/location.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/log.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/mcp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/media.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/merge_dict.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/message.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/claude.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/cohere.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/llama.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/mistral.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/models/watsonx.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/openai.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/os.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/pickle.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/pprint.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/prompts.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/reasoning.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/response.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/response_iterator.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/safe_formatter.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/serialize.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/shell.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/streamlit.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/string.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/team.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/timer.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/tokens.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/tools.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/web.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/whatsapp.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/utils/yaml_io.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/base.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/distance.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/redis/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/redis/redisdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/search.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/__init__.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/agent.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/condition.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/loop.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/parallel.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/remote.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/router.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/step.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/steps.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/types.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno/workflow/workflow.py +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.4.4 → agno-2.4.6}/agno.egg-info/top_level.txt +0 -0
- {agno-2.4.4 → agno-2.4.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.6
|
|
4
4
|
Summary: Agno: a lightweight library for building Multi-Agent Systems
|
|
5
5
|
Author-email: Ashpreet Bedi <ashpreet@agno.com>
|
|
6
6
|
Project-URL: homepage, https://agno.com
|
|
@@ -132,6 +132,8 @@ Provides-Extra: evm
|
|
|
132
132
|
Requires-Dist: web3; extra == "evm"
|
|
133
133
|
Provides-Extra: exa
|
|
134
134
|
Requires-Dist: exa_py; extra == "exa"
|
|
135
|
+
Provides-Extra: seltz
|
|
136
|
+
Requires-Dist: seltz; extra == "seltz"
|
|
135
137
|
Provides-Extra: fal
|
|
136
138
|
Requires-Dist: fal_client; extra == "fal"
|
|
137
139
|
Provides-Extra: firecrawl
|
|
@@ -264,7 +266,7 @@ Provides-Extra: excel
|
|
|
264
266
|
Requires-Dist: openpyxl; extra == "excel"
|
|
265
267
|
Requires-Dist: xlrd; extra == "excel"
|
|
266
268
|
Provides-Extra: markdown
|
|
267
|
-
Requires-Dist: unstructured; extra == "markdown"
|
|
269
|
+
Requires-Dist: unstructured<0.18.31; extra == "markdown"
|
|
268
270
|
Requires-Dist: markdown; extra == "markdown"
|
|
269
271
|
Requires-Dist: aiofiles; extra == "markdown"
|
|
270
272
|
Provides-Extra: chonkie
|
|
@@ -308,6 +310,7 @@ Provides-Extra: tools
|
|
|
308
310
|
Requires-Dist: agno[apify]; extra == "tools"
|
|
309
311
|
Requires-Dist: agno[arxiv]; extra == "tools"
|
|
310
312
|
Requires-Dist: agno[exa]; extra == "tools"
|
|
313
|
+
Requires-Dist: agno[seltz]; extra == "tools"
|
|
311
314
|
Requires-Dist: agno[cartesia]; extra == "tools"
|
|
312
315
|
Requires-Dist: agno[ddg]; extra == "tools"
|
|
313
316
|
Requires-Dist: agno[duckdb]; extra == "tools"
|
|
@@ -442,7 +445,7 @@ Dynamic: license-file
|
|
|
442
445
|
</div>
|
|
443
446
|
|
|
444
447
|
<p align="center">
|
|
445
|
-
Build
|
|
448
|
+
Build agents that learn.
|
|
446
449
|
</p>
|
|
447
450
|
|
|
448
451
|
<div align="center">
|
|
@@ -457,68 +460,58 @@ Dynamic: license-file
|
|
|
457
460
|
|
|
458
461
|
## What is Agno?
|
|
459
462
|
|
|
460
|
-
|
|
463
|
+
**A Python SDK for building agents that learn and improve with every interaction.**
|
|
461
464
|
|
|
462
|
-
|
|
463
|
-
|-------|--------------|
|
|
464
|
-
| **Framework** | Build agents, teams, and workflows with memory, knowledge, guardrails, and 100+ integrations |
|
|
465
|
-
| **AgentOS Runtime** | Run your system in production with a stateless, secure FastAPI backend |
|
|
466
|
-
| **Control Plane** | Test, monitor, and manage your system using the [AgentOS UI](https://os.agno.com) |
|
|
465
|
+
Most agents are stateless. They reason, respond, forget. Session history helps, but they're exactly as capable on day 1000 as they were on day 1.
|
|
467
466
|
|
|
468
|
-
|
|
467
|
+
Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone.
|
|
469
468
|
|
|
470
|
-
|
|
471
|
-
- **Production-ready on day one.** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
|
|
472
|
-
- **Fast.** 529× faster instantiation than LangGraph. 24× lower memory. [See benchmarks →](#performance)
|
|
469
|
+
Everything runs in your cloud. Your data never leaves your environment.
|
|
473
470
|
|
|
474
|
-
## Example
|
|
475
|
-
|
|
476
|
-
An agent with MCP tools, persistent state, served via FastAPI:
|
|
471
|
+
## Quick Example
|
|
477
472
|
```python
|
|
478
473
|
from agno.agent import Agent
|
|
479
474
|
from agno.db.sqlite import SqliteDb
|
|
480
|
-
from agno.models.
|
|
481
|
-
from agno.os import AgentOS
|
|
482
|
-
from agno.tools.mcp import MCPTools
|
|
475
|
+
from agno.models.openai import OpenAIResponses
|
|
483
476
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
|
|
489
|
-
add_history_to_context=True,
|
|
490
|
-
markdown=True,
|
|
477
|
+
agent = Agent(
|
|
478
|
+
model=OpenAIResponses(id="gpt-5.2"),
|
|
479
|
+
db=SqliteDb(db_file="tmp/agents.db"),
|
|
480
|
+
learning=True,
|
|
491
481
|
)
|
|
492
|
-
|
|
493
|
-
agent_os = AgentOS(agents=[agno_agent])
|
|
494
|
-
app = agent_os.get_app()
|
|
495
|
-
|
|
496
|
-
if __name__ == "__main__":
|
|
497
|
-
agent_os.serve(app="agno_agent:app", reload=True)
|
|
498
482
|
```
|
|
499
483
|
|
|
500
|
-
|
|
484
|
+
One line. Your agent now remembers users, accumulates knowledge, and improves over time.
|
|
485
|
+
|
|
486
|
+
## Production Stack
|
|
501
487
|
|
|
502
|
-
|
|
488
|
+
| Layer | What it does |
|
|
489
|
+
|-------|--------------|
|
|
490
|
+
| **SDK** | Build agents with learning, tools, knowledge, and guardrails |
|
|
491
|
+
| **Runtime** | Run in production using [AgentOS](https://docs.agno.com/agent-os/introduction) |
|
|
492
|
+
| **Control Plane** | Monitor and manage via the [AgentOS UI](https://os.agno.com) |
|
|
503
493
|
|
|
504
494
|
## Features
|
|
505
495
|
|
|
496
|
+
**Learning**
|
|
497
|
+
- User profiles that persist across sessions
|
|
498
|
+
- User memories that accumulate over time
|
|
499
|
+
- Learned knowledge that transfers across users
|
|
500
|
+
- Always or agentic learning modes
|
|
501
|
+
|
|
506
502
|
**Core**
|
|
507
503
|
- Model-agnostic: OpenAI, Anthropic, Google, local models
|
|
508
504
|
- Type-safe I/O with `input_schema` and `output_schema`
|
|
509
505
|
- Async-first, built for long-running tasks
|
|
510
506
|
- Natively multimodal (text, images, audio, video, files)
|
|
511
507
|
|
|
512
|
-
**
|
|
513
|
-
- Persistent storage for session history and state
|
|
514
|
-
- User memory across sessions
|
|
508
|
+
**Knowledge**
|
|
515
509
|
- Agentic RAG with 20+ vector stores, hybrid search, reranking
|
|
516
|
-
-
|
|
510
|
+
- Persistent storage for session history and state
|
|
517
511
|
|
|
518
512
|
**Orchestration**
|
|
519
513
|
- Human-in-the-loop (confirmations, approvals, overrides)
|
|
520
514
|
- Guardrails for validation and security
|
|
521
|
-
- Pre/post hooks for the agent lifecycle
|
|
522
515
|
- First-class MCP and A2A support
|
|
523
516
|
- 100+ built-in toolkits
|
|
524
517
|
|
|
@@ -526,27 +519,12 @@ https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
|
|
|
526
519
|
- Ready-to-use FastAPI runtime
|
|
527
520
|
- Integrated control plane UI
|
|
528
521
|
- Evals for accuracy, performance, latency
|
|
529
|
-
- Durable execution for resumable workflows
|
|
530
|
-
- RBAC and per-agent permissions
|
|
531
522
|
|
|
532
523
|
## Getting Started
|
|
533
524
|
|
|
534
|
-
1. Follow the [quickstart
|
|
535
|
-
2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
|
|
536
|
-
3. Read the [docs](https://docs.agno.com)
|
|
537
|
-
|
|
538
|
-
## Performance
|
|
539
|
-
|
|
540
|
-
Agent workloads spawn hundreds of instances. Stateless, horizontal scalability isn't optional.
|
|
541
|
-
|
|
542
|
-
| Metric | Agno | LangGraph | PydanticAI | CrewAI |
|
|
543
|
-
|--------|------|-----------|------------|--------|
|
|
544
|
-
| Instantiation | **3μs** | 1,587μs (529×) | 170μs (57×) | 210μs (70×) |
|
|
545
|
-
| Memory | **6.6 KiB** | 161 KiB (24×) | 29 KiB (4×) | 66 KiB (10×) |
|
|
546
|
-
|
|
547
|
-
<sub>Apple M4 MacBook Pro, Oct 2025. [Run benchmarks yourself →](https://github.com/agno-agi/agno/tree/main/cookbook/12_evals/performance)</sub>
|
|
548
|
-
|
|
549
|
-
https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
|
|
525
|
+
1. Follow the [quickstart](https://docs.agno.com/get-started/quickstart)
|
|
526
|
+
2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
|
|
527
|
+
3. Read the [docs](https://docs.agno.com)
|
|
550
528
|
|
|
551
529
|
## IDE Integration
|
|
552
530
|
|
|
@@ -558,7 +536,7 @@ Also works with VSCode, Windsurf, and similar tools.
|
|
|
558
536
|
|
|
559
537
|
## Contributing
|
|
560
538
|
|
|
561
|
-
|
|
539
|
+
See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
|
|
562
540
|
|
|
563
541
|
## Telemetry
|
|
564
542
|
|
agno-2.4.6/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<div align="center" id="top">
|
|
2
|
+
<a href="https://agno.com">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-dark.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: light)" srcset="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg">
|
|
6
|
+
<img src="https://agno-public.s3.us-east-1.amazonaws.com/assets/logo-light.svg" alt="Agno">
|
|
7
|
+
</picture>
|
|
8
|
+
</a>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
Build agents that learn.
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<div align="center">
|
|
16
|
+
<a href="https://docs.agno.com">Docs</a>
|
|
17
|
+
<span> • </span>
|
|
18
|
+
<a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
|
|
19
|
+
<span> • </span>
|
|
20
|
+
<a href="https://community.agno.com/">Community</a>
|
|
21
|
+
<span> • </span>
|
|
22
|
+
<a href="https://www.agno.com/discord">Discord</a>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
## What is Agno?
|
|
26
|
+
|
|
27
|
+
**A Python SDK for building agents that learn and improve with every interaction.**
|
|
28
|
+
|
|
29
|
+
Most agents are stateless. They reason, respond, forget. Session history helps, but they're exactly as capable on day 1000 as they were on day 1.
|
|
30
|
+
|
|
31
|
+
Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone.
|
|
32
|
+
|
|
33
|
+
Everything runs in your cloud. Your data never leaves your environment.
|
|
34
|
+
|
|
35
|
+
## Quick Example
|
|
36
|
+
```python
|
|
37
|
+
from agno.agent import Agent
|
|
38
|
+
from agno.db.sqlite import SqliteDb
|
|
39
|
+
from agno.models.openai import OpenAIResponses
|
|
40
|
+
|
|
41
|
+
agent = Agent(
|
|
42
|
+
model=OpenAIResponses(id="gpt-5.2"),
|
|
43
|
+
db=SqliteDb(db_file="tmp/agents.db"),
|
|
44
|
+
learning=True,
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
One line. Your agent now remembers users, accumulates knowledge, and improves over time.
|
|
49
|
+
|
|
50
|
+
## Production Stack
|
|
51
|
+
|
|
52
|
+
| Layer | What it does |
|
|
53
|
+
|-------|--------------|
|
|
54
|
+
| **SDK** | Build agents with learning, tools, knowledge, and guardrails |
|
|
55
|
+
| **Runtime** | Run in production using [AgentOS](https://docs.agno.com/agent-os/introduction) |
|
|
56
|
+
| **Control Plane** | Monitor and manage via the [AgentOS UI](https://os.agno.com) |
|
|
57
|
+
|
|
58
|
+
## Features
|
|
59
|
+
|
|
60
|
+
**Learning**
|
|
61
|
+
- User profiles that persist across sessions
|
|
62
|
+
- User memories that accumulate over time
|
|
63
|
+
- Learned knowledge that transfers across users
|
|
64
|
+
- Always or agentic learning modes
|
|
65
|
+
|
|
66
|
+
**Core**
|
|
67
|
+
- Model-agnostic: OpenAI, Anthropic, Google, local models
|
|
68
|
+
- Type-safe I/O with `input_schema` and `output_schema`
|
|
69
|
+
- Async-first, built for long-running tasks
|
|
70
|
+
- Natively multimodal (text, images, audio, video, files)
|
|
71
|
+
|
|
72
|
+
**Knowledge**
|
|
73
|
+
- Agentic RAG with 20+ vector stores, hybrid search, reranking
|
|
74
|
+
- Persistent storage for session history and state
|
|
75
|
+
|
|
76
|
+
**Orchestration**
|
|
77
|
+
- Human-in-the-loop (confirmations, approvals, overrides)
|
|
78
|
+
- Guardrails for validation and security
|
|
79
|
+
- First-class MCP and A2A support
|
|
80
|
+
- 100+ built-in toolkits
|
|
81
|
+
|
|
82
|
+
**Production**
|
|
83
|
+
- Ready-to-use FastAPI runtime
|
|
84
|
+
- Integrated control plane UI
|
|
85
|
+
- Evals for accuracy, performance, latency
|
|
86
|
+
|
|
87
|
+
## Getting Started
|
|
88
|
+
|
|
89
|
+
1. Follow the [quickstart](https://docs.agno.com/get-started/quickstart)
|
|
90
|
+
2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
|
|
91
|
+
3. Read the [docs](https://docs.agno.com)
|
|
92
|
+
|
|
93
|
+
## IDE Integration
|
|
94
|
+
|
|
95
|
+
Add our docs to your AI-enabled editor:
|
|
96
|
+
|
|
97
|
+
**Cursor:** Settings → Indexing & Docs → Add `https://docs.agno.com/llms-full.txt`
|
|
98
|
+
|
|
99
|
+
Also works with VSCode, Windsurf, and similar tools.
|
|
100
|
+
|
|
101
|
+
## Contributing
|
|
102
|
+
|
|
103
|
+
See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
|
|
104
|
+
|
|
105
|
+
## Telemetry
|
|
106
|
+
|
|
107
|
+
Agno logs which model providers are used to prioritize updates. Disable with `AGNO_TELEMETRY=false`.
|
|
108
|
+
|
|
109
|
+
<p align="right"><a href="#top">↑ Back to top</a></p>
|
|
@@ -320,6 +320,8 @@ class Agent:
|
|
|
320
320
|
# Add a tool that allows the Model to search the knowledge base (aka Agentic RAG)
|
|
321
321
|
# Added only if knowledge is provided.
|
|
322
322
|
search_knowledge: bool = True
|
|
323
|
+
# If True, add search_knowledge instructions to the system prompt
|
|
324
|
+
add_search_knowledge_instructions: bool = True
|
|
323
325
|
# Add a tool that allows the Agent to update Knowledge.
|
|
324
326
|
update_knowledge: bool = False
|
|
325
327
|
# Add a tool that allows the Model to get the tool call history.
|
|
@@ -524,6 +526,7 @@ class Agent:
|
|
|
524
526
|
reasoning_max_steps: int = 10,
|
|
525
527
|
read_chat_history: bool = False,
|
|
526
528
|
search_knowledge: bool = True,
|
|
529
|
+
add_search_knowledge_instructions: bool = True,
|
|
527
530
|
update_knowledge: bool = False,
|
|
528
531
|
read_tool_call_history: bool = False,
|
|
529
532
|
send_media_to_model: bool = True,
|
|
@@ -661,6 +664,7 @@ class Agent:
|
|
|
661
664
|
|
|
662
665
|
self.read_chat_history = read_chat_history
|
|
663
666
|
self.search_knowledge = search_knowledge
|
|
667
|
+
self.add_search_knowledge_instructions = add_search_knowledge_instructions
|
|
664
668
|
self.update_knowledge = update_knowledge
|
|
665
669
|
self.read_tool_call_history = read_tool_call_history
|
|
666
670
|
self.send_media_to_model = send_media_to_model
|
|
@@ -854,8 +858,9 @@ class Agent:
|
|
|
854
858
|
return
|
|
855
859
|
|
|
856
860
|
# Handle learning=True: create default LearningMachine
|
|
861
|
+
# Enables user_profile (structured fields) and user_memory (unstructured observations)
|
|
857
862
|
if self.learning is True:
|
|
858
|
-
self._learning = LearningMachine(db=self.db, model=self.model, user_profile=True)
|
|
863
|
+
self._learning = LearningMachine(db=self.db, model=self.model, user_profile=True, user_memory=True)
|
|
859
864
|
return
|
|
860
865
|
|
|
861
866
|
# Handle learning=LearningMachine(...): inject dependencies
|
|
@@ -7431,6 +7436,10 @@ class Agent:
|
|
|
7431
7436
|
config["enable_agentic_knowledge_filters"] = self.enable_agentic_knowledge_filters
|
|
7432
7437
|
if self.add_knowledge_to_context:
|
|
7433
7438
|
config["add_knowledge_to_context"] = self.add_knowledge_to_context
|
|
7439
|
+
if not self.search_knowledge:
|
|
7440
|
+
config["search_knowledge"] = self.search_knowledge
|
|
7441
|
+
if self.add_search_knowledge_instructions:
|
|
7442
|
+
config["add_search_knowledge_instructions"] = self.add_search_knowledge_instructions
|
|
7434
7443
|
# Skip knowledge_retriever as it's a callable
|
|
7435
7444
|
if self.references_format != "json":
|
|
7436
7445
|
config["references_format"] = self.references_format
|
|
@@ -7481,8 +7490,6 @@ class Agent:
|
|
|
7481
7490
|
# --- Default tools settings ---
|
|
7482
7491
|
if self.read_chat_history:
|
|
7483
7492
|
config["read_chat_history"] = self.read_chat_history
|
|
7484
|
-
if not self.search_knowledge:
|
|
7485
|
-
config["search_knowledge"] = self.search_knowledge
|
|
7486
7493
|
if self.update_knowledge:
|
|
7487
7494
|
config["update_knowledge"] = self.update_knowledge
|
|
7488
7495
|
if self.read_tool_call_history:
|
|
@@ -7806,6 +7813,7 @@ class Agent:
|
|
|
7806
7813
|
# --- Default tools settings ---
|
|
7807
7814
|
read_chat_history=config.get("read_chat_history", False),
|
|
7808
7815
|
search_knowledge=config.get("search_knowledge", True),
|
|
7816
|
+
add_search_knowledge_instructions=config.get("add_search_knowledge_instructions", True),
|
|
7809
7817
|
update_knowledge=config.get("update_knowledge", False),
|
|
7810
7818
|
read_tool_call_history=config.get("read_tool_call_history", False),
|
|
7811
7819
|
send_media_to_model=config.get("send_media_to_model", True),
|
|
@@ -8859,16 +8867,6 @@ class Agent:
|
|
|
8859
8867
|
if self.name is not None and self.add_name_to_context:
|
|
8860
8868
|
additional_information.append(f"Your name is: {self.name}.")
|
|
8861
8869
|
|
|
8862
|
-
# 3.2.5 Add knowledge context using protocol's build_context
|
|
8863
|
-
if self.knowledge is not None:
|
|
8864
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
8865
|
-
if callable(build_context_fn):
|
|
8866
|
-
knowledge_context = build_context_fn(
|
|
8867
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
8868
|
-
)
|
|
8869
|
-
if knowledge_context:
|
|
8870
|
-
additional_information.append(knowledge_context)
|
|
8871
|
-
|
|
8872
8870
|
# 3.3 Build the default system message for the Agent.
|
|
8873
8871
|
system_message_content: str = ""
|
|
8874
8872
|
# 3.3.1 First add the Agent description if provided
|
|
@@ -9045,12 +9043,22 @@ class Agent:
|
|
|
9045
9043
|
if learning_context:
|
|
9046
9044
|
system_message_content += learning_context + "\n"
|
|
9047
9045
|
|
|
9048
|
-
# 3.3.13
|
|
9046
|
+
# 3.3.13 then add search_knowledge instructions to the system prompt
|
|
9047
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
9048
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9049
|
+
if callable(build_context_fn):
|
|
9050
|
+
knowledge_context = build_context_fn(
|
|
9051
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9052
|
+
)
|
|
9053
|
+
if knowledge_context is not None:
|
|
9054
|
+
system_message_content += knowledge_context + "\n"
|
|
9055
|
+
|
|
9056
|
+
# 3.3.14 Add the system message from the Model
|
|
9049
9057
|
system_message_from_model = self.model.get_system_message_for_model(tools)
|
|
9050
9058
|
if system_message_from_model is not None:
|
|
9051
9059
|
system_message_content += system_message_from_model
|
|
9052
9060
|
|
|
9053
|
-
# 3.3.
|
|
9061
|
+
# 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
|
|
9054
9062
|
# or if use_json_mode is True
|
|
9055
9063
|
if (
|
|
9056
9064
|
output_schema is not None
|
|
@@ -9062,11 +9070,11 @@ class Agent:
|
|
|
9062
9070
|
):
|
|
9063
9071
|
system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
|
|
9064
9072
|
|
|
9065
|
-
# 3.3.
|
|
9073
|
+
# 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
|
|
9066
9074
|
if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
|
|
9067
9075
|
system_message_content += f"{get_response_model_format_prompt(output_schema)}"
|
|
9068
9076
|
|
|
9069
|
-
# 3.3.
|
|
9077
|
+
# 3.3.17 Add the session state to the system message
|
|
9070
9078
|
if add_session_state_to_context and session_state is not None:
|
|
9071
9079
|
system_message_content += f"\n<session_state>\n{session_state}\n</session_state>\n\n"
|
|
9072
9080
|
|
|
@@ -9196,24 +9204,6 @@ class Agent:
|
|
|
9196
9204
|
if self.name is not None and self.add_name_to_context:
|
|
9197
9205
|
additional_information.append(f"Your name is: {self.name}.")
|
|
9198
9206
|
|
|
9199
|
-
# 3.2.5 Add knowledge context using protocol's build_context (async)
|
|
9200
|
-
if self.knowledge is not None:
|
|
9201
|
-
# Prefer async version if available for async databases
|
|
9202
|
-
abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
|
|
9203
|
-
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9204
|
-
if callable(abuild_context_fn):
|
|
9205
|
-
knowledge_context = await abuild_context_fn(
|
|
9206
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9207
|
-
)
|
|
9208
|
-
if knowledge_context:
|
|
9209
|
-
additional_information.append(knowledge_context)
|
|
9210
|
-
elif callable(build_context_fn):
|
|
9211
|
-
knowledge_context = build_context_fn(
|
|
9212
|
-
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9213
|
-
)
|
|
9214
|
-
if knowledge_context:
|
|
9215
|
-
additional_information.append(knowledge_context)
|
|
9216
|
-
|
|
9217
9207
|
# 3.3 Build the default system message for the Agent.
|
|
9218
9208
|
system_message_content: str = ""
|
|
9219
9209
|
# 3.3.1 First add the Agent description if provided
|
|
@@ -9393,12 +9383,30 @@ class Agent:
|
|
|
9393
9383
|
if learning_context:
|
|
9394
9384
|
system_message_content += learning_context + "\n"
|
|
9395
9385
|
|
|
9396
|
-
# 3.3.13
|
|
9386
|
+
# 3.3.13 then add search_knowledge instructions to the system prompt
|
|
9387
|
+
if self.knowledge is not None and self.search_knowledge and self.add_search_knowledge_instructions:
|
|
9388
|
+
# Prefer async version if available for async databases
|
|
9389
|
+
abuild_context_fn = getattr(self.knowledge, "abuild_context", None)
|
|
9390
|
+
build_context_fn = getattr(self.knowledge, "build_context", None)
|
|
9391
|
+
if callable(abuild_context_fn):
|
|
9392
|
+
knowledge_context = await abuild_context_fn(
|
|
9393
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9394
|
+
)
|
|
9395
|
+
if knowledge_context is not None:
|
|
9396
|
+
system_message_content += knowledge_context + "\n"
|
|
9397
|
+
elif callable(build_context_fn):
|
|
9398
|
+
knowledge_context = build_context_fn(
|
|
9399
|
+
enable_agentic_filters=self.enable_agentic_knowledge_filters,
|
|
9400
|
+
)
|
|
9401
|
+
if knowledge_context is not None:
|
|
9402
|
+
system_message_content += knowledge_context + "\n"
|
|
9403
|
+
|
|
9404
|
+
# 3.3.14 Add the system message from the Model
|
|
9397
9405
|
system_message_from_model = self.model.get_system_message_for_model(tools)
|
|
9398
9406
|
if system_message_from_model is not None:
|
|
9399
9407
|
system_message_content += system_message_from_model
|
|
9400
9408
|
|
|
9401
|
-
# 3.3.
|
|
9409
|
+
# 3.3.15 Add the JSON output prompt if output_schema is provided and the model does not support native structured outputs or JSON schema outputs
|
|
9402
9410
|
# or if use_json_mode is True
|
|
9403
9411
|
if (
|
|
9404
9412
|
output_schema is not None
|
|
@@ -9410,11 +9418,11 @@ class Agent:
|
|
|
9410
9418
|
):
|
|
9411
9419
|
system_message_content += f"{get_json_output_prompt(output_schema)}" # type: ignore
|
|
9412
9420
|
|
|
9413
|
-
# 3.3.
|
|
9421
|
+
# 3.3.16 Add the response model format prompt if output_schema is provided (Pydantic only)
|
|
9414
9422
|
if output_schema is not None and self.parser_model is not None and not isinstance(output_schema, dict):
|
|
9415
9423
|
system_message_content += f"{get_response_model_format_prompt(output_schema)}"
|
|
9416
9424
|
|
|
9417
|
-
# 3.3.
|
|
9425
|
+
# 3.3.17 Add the session state to the system message
|
|
9418
9426
|
if add_session_state_to_context and session_state is not None:
|
|
9419
9427
|
system_message_content += self._get_formatted_session_state_for_system_message(session_state)
|
|
9420
9428
|
|
|
@@ -48,7 +48,7 @@ def surrealize_dates(record: dict) -> dict:
|
|
|
48
48
|
if isinstance(value, date):
|
|
49
49
|
copy[key] = datetime.combine(value, datetime.min.time()).replace(tzinfo=timezone.utc)
|
|
50
50
|
elif key in ["created_at", "updated_at"] and isinstance(value, (int, float)):
|
|
51
|
-
copy[key] = datetime.fromtimestamp(value
|
|
51
|
+
copy[key] = datetime.fromtimestamp(value, tz=timezone.utc)
|
|
52
52
|
elif key in ["created_at", "updated_at"] and isinstance(value, str):
|
|
53
53
|
# Handle ISO string format - convert back to datetime object for SurrealDB
|
|
54
54
|
try:
|
|
@@ -55,11 +55,7 @@ class AgenticChunking(ChunkingStrategy):
|
|
|
55
55
|
chunk = remaining_text[:break_point].strip()
|
|
56
56
|
meta_data = chunk_meta_data.copy()
|
|
57
57
|
meta_data["chunk"] = chunk_number
|
|
58
|
-
chunk_id =
|
|
59
|
-
if document.id:
|
|
60
|
-
chunk_id = f"{document.id}_{chunk_number}"
|
|
61
|
-
elif document.name:
|
|
62
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
58
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk)
|
|
63
59
|
meta_data["chunk_size"] = len(chunk)
|
|
64
60
|
chunks.append(
|
|
65
61
|
Document(
|
|
@@ -82,7 +82,7 @@ class CodeChunking(ChunkingStrategy):
|
|
|
82
82
|
for i, chunk in enumerate(chunks, 1):
|
|
83
83
|
meta_data = document.meta_data.copy()
|
|
84
84
|
meta_data["chunk"] = i
|
|
85
|
-
chunk_id =
|
|
85
|
+
chunk_id = self._generate_chunk_id(document, i, chunk.text)
|
|
86
86
|
meta_data["chunk_size"] = len(chunk.text)
|
|
87
87
|
|
|
88
88
|
chunked_documents.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk.text))
|
|
@@ -38,17 +38,10 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
38
38
|
if current_chunk:
|
|
39
39
|
meta_data = chunk_meta_data.copy()
|
|
40
40
|
meta_data["chunk"] = chunk_number
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
46
|
-
meta_data["chunk_size"] = len("\n\n".join(current_chunk))
|
|
47
|
-
chunks.append(
|
|
48
|
-
Document(
|
|
49
|
-
id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk)
|
|
50
|
-
)
|
|
51
|
-
)
|
|
41
|
+
chunk_content = "\n\n".join(current_chunk)
|
|
42
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
|
|
43
|
+
meta_data["chunk_size"] = len(chunk_content)
|
|
44
|
+
chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
|
|
52
45
|
chunk_number += 1
|
|
53
46
|
current_chunk = []
|
|
54
47
|
current_size = 0
|
|
@@ -70,18 +63,15 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
70
63
|
if current_chunk:
|
|
71
64
|
meta_data = chunk_meta_data.copy()
|
|
72
65
|
meta_data["chunk"] = chunk_number
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
elif document.name:
|
|
77
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
78
|
-
meta_data["chunk_size"] = len(" ".join(current_chunk))
|
|
66
|
+
chunk_content = " ".join(current_chunk)
|
|
67
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
|
|
68
|
+
meta_data["chunk_size"] = len(chunk_content)
|
|
79
69
|
chunks.append(
|
|
80
70
|
Document(
|
|
81
71
|
id=chunk_id,
|
|
82
72
|
name=document.name,
|
|
83
73
|
meta_data=meta_data,
|
|
84
|
-
content=
|
|
74
|
+
content=chunk_content,
|
|
85
75
|
)
|
|
86
76
|
)
|
|
87
77
|
chunk_number += 1
|
|
@@ -94,18 +84,11 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
94
84
|
else:
|
|
95
85
|
meta_data = chunk_meta_data.copy()
|
|
96
86
|
meta_data["chunk"] = chunk_number
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
elif document.name:
|
|
101
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
102
|
-
meta_data["chunk_size"] = len("\n\n".join(current_chunk))
|
|
87
|
+
chunk_content = "\n\n".join(current_chunk)
|
|
88
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
|
|
89
|
+
meta_data["chunk_size"] = len(chunk_content)
|
|
103
90
|
if current_chunk:
|
|
104
|
-
chunks.append(
|
|
105
|
-
Document(
|
|
106
|
-
id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk)
|
|
107
|
-
)
|
|
108
|
-
)
|
|
91
|
+
chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
|
|
109
92
|
chunk_number += 1
|
|
110
93
|
current_chunk = [para]
|
|
111
94
|
current_size = para_size
|
|
@@ -113,15 +96,10 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
113
96
|
if current_chunk:
|
|
114
97
|
meta_data = chunk_meta_data.copy()
|
|
115
98
|
meta_data["chunk"] = chunk_number
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
121
|
-
meta_data["chunk_size"] = len("\n\n".join(current_chunk))
|
|
122
|
-
chunks.append(
|
|
123
|
-
Document(id=chunk_id, name=document.name, meta_data=meta_data, content="\n\n".join(current_chunk))
|
|
124
|
-
)
|
|
99
|
+
chunk_content = "\n\n".join(current_chunk)
|
|
100
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk_content)
|
|
101
|
+
meta_data["chunk_size"] = len(chunk_content)
|
|
102
|
+
chunks.append(Document(id=chunk_id, name=document.name, meta_data=meta_data, content=chunk_content))
|
|
125
103
|
|
|
126
104
|
# Handle overlap if specified
|
|
127
105
|
if self.overlap > 0:
|
|
@@ -131,11 +109,11 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
131
109
|
# Add overlap from previous chunk
|
|
132
110
|
prev_text = chunks[i - 1].content[-self.overlap :]
|
|
133
111
|
meta_data = chunk_meta_data.copy()
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
chunk_id = f"{document.id}_{chunk_number}"
|
|
112
|
+
# Use the chunk's existing metadata and ID instead of stale chunk_number
|
|
113
|
+
meta_data["chunk"] = chunks[i].meta_data["chunk"]
|
|
114
|
+
chunk_id = chunks[i].id
|
|
138
115
|
meta_data["chunk_size"] = len(prev_text + chunks[i].content)
|
|
116
|
+
|
|
139
117
|
if prev_text:
|
|
140
118
|
overlapped_chunks.append(
|
|
141
119
|
Document(
|
|
@@ -145,6 +123,8 @@ class DocumentChunking(ChunkingStrategy):
|
|
|
145
123
|
content=prev_text + chunks[i].content,
|
|
146
124
|
)
|
|
147
125
|
)
|
|
126
|
+
else:
|
|
127
|
+
overlapped_chunks.append(chunks[i])
|
|
148
128
|
else:
|
|
149
129
|
overlapped_chunks.append(chunks[i])
|
|
150
130
|
chunks = overlapped_chunks
|
|
@@ -38,11 +38,7 @@ class FixedSizeChunking(ChunkingStrategy):
|
|
|
38
38
|
chunk = content[start:end]
|
|
39
39
|
meta_data = chunk_meta_data.copy()
|
|
40
40
|
meta_data["chunk"] = chunk_number
|
|
41
|
-
chunk_id =
|
|
42
|
-
if document.id:
|
|
43
|
-
chunk_id = f"{document.id}_{chunk_number}"
|
|
44
|
-
elif document.name:
|
|
45
|
-
chunk_id = f"{document.name}_{chunk_number}"
|
|
41
|
+
chunk_id = self._generate_chunk_id(document, chunk_number, chunk)
|
|
46
42
|
meta_data["chunk_size"] = len(chunk)
|
|
47
43
|
chunked_documents.append(
|
|
48
44
|
Document(
|