agno 2.3.19__tar.gz → 2.3.21__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.3.19 → agno-2.3.21}/PKG-INFO +60 -129
- agno-2.3.21/README.md +167 -0
- {agno-2.3.19 → agno-2.3.21}/agno/agent/agent.py +2466 -2048
- {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/utils.py +26 -3
- {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/utils.py +25 -10
- {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/utils.py +14 -2
- {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/utils.py +14 -2
- {agno-2.3.19 → agno-2.3.21}/agno/db/json/utils.py +14 -2
- {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/utils.py +13 -3
- {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/utils.py +13 -3
- {agno-2.3.19 → agno-2.3.21}/agno/db/redis/utils.py +26 -10
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/memory.py +15 -19
- {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/utils.py +13 -3
- {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/utils.py +15 -3
- {agno-2.3.19 → agno-2.3.21}/agno/db/utils.py +22 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/agent_as_judge.py +24 -14
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/mistral.py +1 -1
- {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/chat.py +6 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/evals.py +0 -9
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/utils.py +6 -6
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/schemas.py +1 -1
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/schemas.py +14 -1
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/schemas.py +1 -1
- {agno-2.3.19 → agno-2.3.21}/agno/os/schema.py +11 -9
- agno-2.3.21/agno/run/__init__.py +4 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/agent.py +19 -19
- agno-2.3.21/agno/run/cancel.py +94 -0
- agno-2.3.21/agno/run/cancellation_management/__init__.py +9 -0
- agno-2.3.21/agno/run/cancellation_management/base.py +78 -0
- agno-2.3.21/agno/run/cancellation_management/in_memory_cancellation_manager.py +100 -0
- agno-2.3.21/agno/run/cancellation_management/redis_cancellation_manager.py +236 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/team.py +19 -19
- {agno-2.3.19 → agno-2.3.21}/agno/team/team.py +1217 -1136
- {agno-2.3.19 → agno-2.3.21}/agno/utils/response.py +1 -13
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/__init__.py +1 -1
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/workflow.py +23 -16
- {agno-2.3.19 → agno-2.3.21}/agno.egg-info/PKG-INFO +60 -129
- {agno-2.3.19 → agno-2.3.21}/agno.egg-info/SOURCES.txt +4 -0
- {agno-2.3.19 → agno-2.3.21}/agno.egg-info/requires.txt +1 -0
- {agno-2.3.19 → agno-2.3.21}/pyproject.toml +3 -2
- agno-2.3.19/README.md +0 -237
- agno-2.3.19/agno/run/__init__.py +0 -6
- agno-2.3.19/agno/run/cancel.py +0 -81
- {agno-2.3.19 → agno-2.3.21}/LICENSE +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/agent/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/agent/remote.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/api.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/evals.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/os.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/routes.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/evals.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/os.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/response.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/team.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/schemas/workflows.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/settings.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/team.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/api/workflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/client/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/client/os.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/compression/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/compression/manager.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/culture/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/culture/manager.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/async_postgres/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/dynamo.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/firestore.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/firestore/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/gcs_json/gcs_json_db.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/json/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/json/json_db.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/manager.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/v1_to_v2.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/versions/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/migrations/versions/v2_3_0.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/async_mongo.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/mongo.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mongo/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/async_mysql.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/mysql.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/mysql/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/async_postgres.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/postgres.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/postgres/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/redis/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/redis/redis.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/redis/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/culture.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/evals.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/schemas/metrics.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/singlestore/singlestore.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/async_sqlite.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/sqlite/sqlite.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/metrics.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/models.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/queries.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/surrealdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/db/surrealdb/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/debug.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/accuracy.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/performance.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/reliability.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/eval/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/exceptions.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/filters.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/guardrails/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/guardrails/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/guardrails/openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/guardrails/pii.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/guardrails/prompt_injection.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/hooks/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/hooks/decorator.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/integrations/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/integrations/discord/client.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/agentic.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/document.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/fixed.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/markdown.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/recursive.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/row.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/semantic.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/chunking/strategy.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/content.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/document/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/vllm.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/knowledge.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/pptx_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/reader_factory.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/tavily_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/text_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/web_search_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/types.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/knowledge/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/media.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/manager.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/summarize.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/memory/strategies/types.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/aimlapi/aimlapi.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/anthropic/claude.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/aws/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/aws/bedrock.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/aws/claude.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/azure/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/cerebras.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cerebras/cerebras_openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cohere/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cohere/chat.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cometapi/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/cometapi/cometapi.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/deepinfra/deepinfra.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/defaults.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/fireworks/fireworks.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/google/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/google/gemini.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/google/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/groq/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/groq/groq.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/huggingface/huggingface.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/ibm/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/ibm/watsonx.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/internlm/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/internlm/internlm.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/langdb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/langdb/langdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/litellm/litellm_openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/llama_cpp/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/llama_cpp/llama_cpp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/message.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/meta/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/meta/llama.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/meta/llama_openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/metrics.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/mistral/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/mistral/mistral.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nebius/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nebius/nebius.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nexus/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nexus/nexus.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/nvidia/nvidia.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/ollama/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/ollama/chat.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openai/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openai/chat.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openai/like.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openai/responses.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/openrouter/openrouter.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/perplexity/perplexity.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/portkey/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/portkey/portkey.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/requesty/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/requesty/requesty.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/response.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/sambanova/sambanova.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/siliconflow/siliconflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/together/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/together/together.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vercel/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vercel/v0.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vertexai/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vertexai/claude.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vllm/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/vllm/vllm.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/xai/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/models/xai/xai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/app.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/auth.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/config.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/a2a.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/a2a/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/agui/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/managers.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/mcp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/middleware/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/middleware/jwt.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/agents/schema.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/database.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/health.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/home.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/knowledge/knowledge.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/session/session.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/teams/schema.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/traces/traces.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/routers/workflows/schema.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/scopes.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/settings.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/os/utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/py.typed +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/anthropic.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/deepseek.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/default.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/gemini.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/groq.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/helpers.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/manager.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/ollama.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/step.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/reasoning/vertexai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/remote/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/remote/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/messages.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/requirement.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/run/workflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/session/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/session/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/session/summary.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/session/team.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/session/workflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/table.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/team/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/team/remote.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/agentql.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/airflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/api.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/apify.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/arxiv.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/aws_lambda.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/aws_ses.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/baidusearch.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/bitbucket.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/brandfetch.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/bravesearch.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/brightdata.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/browserbase.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/calcom.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/calculator.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/cartesia.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/clickup.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/confluence.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/crawl4ai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/dalle.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/daytona.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/decorator.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/desi_vocal.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/discord.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/docker.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/duckdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/duckduckgo.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/e2b.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/eleven_labs.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/email.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/evm.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/exa.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/fal.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/file.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/file_generation.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/financial_datasets.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/firecrawl.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/function.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/giphy.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/github.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/gmail.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/google_bigquery.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/google_drive.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/google_maps.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/googlecalendar.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/googlesheets.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/hackernews.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/jina.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/jira.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/knowledge.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/linear.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/linkup.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/local_file_system.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/lumalab.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/mcp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/multi_mcp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp/params.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mcp_toolbox.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mem0.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/memory.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/gemini.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/groq.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/morph.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models/nebius.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/models_labs.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/moviepy_video.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/nano_banana.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/neo4j.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/newspaper.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/newspaper4k.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/notion.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/openbb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/opencv.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/openweather.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/oxylabs.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/pandas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/parallel.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/postgres.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/pubmed.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/python.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/reasoning.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/reddit.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/redshift.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/replicate.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/resend.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/scrapegraph.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/searxng.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/serpapi.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/serper.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/shell.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/shopify.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/slack.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/sleep.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/spider.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/spotify.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/sql.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/streamlit/components.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/tavily.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/telegram.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/todoist.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/tool_registry.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/toolkit.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/trafilatura.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/trello.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/twilio.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/user_control_flow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/valyu.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/visualization.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/webbrowser.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/webex.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/website.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/webtools.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/whatsapp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/wikipedia.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/workflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/x.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/yfinance.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/youtube.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/zendesk.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/zep.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tools/zoom.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tracing/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tracing/exporter.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tracing/schemas.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/tracing/setup.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/audio.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/certs.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/code_execution.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/common.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/cryptography.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/dttm.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/enum.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/env.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/events.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/format_str.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/functions.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/gemini.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/hooks.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/http.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/json_schema.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/knowledge.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/location.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/log.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/mcp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/media.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/merge_dict.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/message.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/claude.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/cohere.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/llama.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/mistral.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/models/watsonx.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/openai.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/os.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/pickle.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/pprint.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/team.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/prompts.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/reasoning.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/remote.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/response_iterator.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/safe_formatter.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/serialize.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/shell.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/streamlit.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/string.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/team.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/timer.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/tokens.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/tools.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/web.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/whatsapp.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/utils/yaml_io.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/base.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/distance.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/redis/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/redis/redisdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/search.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/__init__.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/agent.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/condition.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/loop.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/parallel.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/remote.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/router.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/step.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/steps.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno/workflow/types.py +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.3.19 → agno-2.3.21}/agno.egg-info/top_level.txt +0 -0
- {agno-2.3.19 → agno-2.3.21}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.21
|
|
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
|
|
@@ -49,6 +49,7 @@ Requires-Dist: uvicorn; extra == "dev"
|
|
|
49
49
|
Requires-Dist: PyJWT; extra == "dev"
|
|
50
50
|
Requires-Dist: mcp; extra == "dev"
|
|
51
51
|
Requires-Dist: openai; extra == "dev"
|
|
52
|
+
Requires-Dist: fakeredis; extra == "dev"
|
|
52
53
|
Provides-Extra: os
|
|
53
54
|
Requires-Dist: fastapi; extra == "os"
|
|
54
55
|
Requires-Dist: uvicorn; extra == "os"
|
|
@@ -414,7 +415,7 @@ Dynamic: license-file
|
|
|
414
415
|
<div align="center">
|
|
415
416
|
<a href="https://docs.agno.com">Documentation</a>
|
|
416
417
|
<span> • </span>
|
|
417
|
-
<a href="https://
|
|
418
|
+
<a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
|
|
418
419
|
<span> • </span>
|
|
419
420
|
<a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
|
|
420
421
|
<br />
|
|
@@ -422,25 +423,27 @@ Dynamic: license-file
|
|
|
422
423
|
|
|
423
424
|
## What is Agno?
|
|
424
425
|
|
|
425
|
-
Agno is
|
|
426
|
+
Agno is a multi-agent framework, runtime, and control plane. Use it to build private and secure AI products that run in your cloud.
|
|
426
427
|
|
|
427
|
-
|
|
428
|
+
- **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
|
|
429
|
+
- **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
|
|
430
|
+
- **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
|
|
428
431
|
|
|
429
|
-
|
|
432
|
+
## Why Agno?
|
|
430
433
|
|
|
431
|
-
- **
|
|
432
|
-
- **
|
|
433
|
-
- **
|
|
434
|
+
- **Your cloud, your data:** AgentOS runs entirely in your infrastructure. Zero data leaves your environment.
|
|
435
|
+
- **Production-ready from day one:** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
|
|
436
|
+
- **Actually fast:** 529× faster than LangGraph, 24× lower memory. Matters at scale.
|
|
434
437
|
|
|
435
|
-
|
|
438
|
+
## Getting Started
|
|
436
439
|
|
|
437
|
-
|
|
440
|
+
New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
|
|
438
441
|
|
|
439
|
-
|
|
442
|
+
Then:
|
|
443
|
+
- Browse the [cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook) for real-world examples
|
|
444
|
+
- Read the [docs](https://docs.agno.com) to learn more.
|
|
440
445
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
## Documentation, Community & More Examples
|
|
446
|
+
## Resources
|
|
444
447
|
|
|
445
448
|
- Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
|
|
446
449
|
- Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
|
|
@@ -496,144 +499,72 @@ When you run the example script shared above, you get a FastAPI app that you can
|
|
|
496
499
|
|
|
497
500
|
https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
|
|
498
501
|
|
|
499
|
-
##
|
|
502
|
+
## Private by Design
|
|
500
503
|
|
|
501
|
-
|
|
504
|
+
This is the part we care most about.
|
|
502
505
|
|
|
503
|
-
|
|
504
|
-
- A ready-to-use FastAPI app that gets you building AI products on day one.
|
|
505
|
-
- A control plane for testing, monitoring and managing your system.
|
|
506
|
+
AgentOS runs in **your** cloud. The control plane UI connects directly to your runtime from your browser. Your data never touches our servers. No retention costs, no vendor lock-in, no compliance headaches.
|
|
506
507
|
|
|
507
|
-
|
|
508
|
+
This isn't a privacy mode or enterprise add-on. It's how Agno works.
|
|
508
509
|
|
|
509
510
|
## Features
|
|
510
511
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
| | **Data Governance** | Your data lives securely in your Agent database, no external data sharing or vendor lock-in. |
|
|
537
|
-
| | **Access Control** | Role-based access (RBAC) and per-agent permissions to protect sensitive contexts and tools. |
|
|
538
|
-
|
|
539
|
-
Every part of Agno is built for real-world deployment — where developer experience meets production performance.
|
|
540
|
-
|
|
541
|
-
## Setup Your Coding Agent to Use Agno
|
|
542
|
-
|
|
543
|
-
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. This file is built for AI systems to efficiently parse and reference our documentation.
|
|
544
|
-
|
|
545
|
-
### IDE Integration
|
|
546
|
-
|
|
547
|
-
When building Agno agents, using Agno documentation as a source in your IDE is a great way to speed up your development. Here's how to integrate with Cursor:
|
|
548
|
-
|
|
549
|
-
1. In Cursor, go to the "Cursor Settings" menu.
|
|
550
|
-
2. Find the "Indexing & Docs" section.
|
|
551
|
-
3. Add `https://docs.agno.com/llms-full.txt` to the list of documentation URLs.
|
|
552
|
-
4. Save the changes.
|
|
553
|
-
|
|
554
|
-
Now, Cursor will have access to the Agno documentation. You can do the same with other IDEs like VSCode, Windsurf etc.
|
|
512
|
+
**Core**
|
|
513
|
+
- Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
|
|
514
|
+
- Type-safe I/O with `input_schema` and `output_schema`
|
|
515
|
+
- Async-first, built for long-running tasks
|
|
516
|
+
- Natively multimodal (text, images, audio, video, files)
|
|
517
|
+
|
|
518
|
+
**Memory & Knowledge**
|
|
519
|
+
- Persistent storage for session history and state
|
|
520
|
+
- User memory that persists across sessions
|
|
521
|
+
- Agentic RAG with 20+ vector stores, hybrid search, reranking
|
|
522
|
+
- Culture — shared long-term memory across agents
|
|
523
|
+
|
|
524
|
+
**Execution**
|
|
525
|
+
- Human-in-the-loop (confirmations, approvals, overrides)
|
|
526
|
+
- Guardrails for validation and security
|
|
527
|
+
- Pre/post hooks for the agent lifecycle
|
|
528
|
+
- First-class MCP and A2A support
|
|
529
|
+
- 100+ built-in toolkits
|
|
530
|
+
|
|
531
|
+
**Production**
|
|
532
|
+
- Ready-to-use FastAPI runtime
|
|
533
|
+
- Integrated control plane UI
|
|
534
|
+
- Evals for accuracy, performance, latency
|
|
535
|
+
- Durable execution for resumable workflows
|
|
536
|
+
- RBAC and per-agent permissions
|
|
555
537
|
|
|
556
538
|
## Performance
|
|
557
539
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
At Agno, we optimize performance across 3 dimensions:
|
|
561
|
-
|
|
562
|
-
1. **Agent performance:** We optimize static operations (instantiation, memory footprint) and runtime operations (tool calls, memory updates, history management).
|
|
563
|
-
2. **System performance:** The AgentOS API is async by default and has a minimal memory footprint. The system is stateless and horizontally scalable, with a focus on preventing memory leaks. It handles parallel and batch embedding generation during knowledge ingestion, metrics collection in background tasks, and other system-level optimizations.
|
|
564
|
-
3. **Agent reliability and accuracy:** Monitored through evals, which we'll explore later.
|
|
565
|
-
|
|
566
|
-
### Agent Performance
|
|
567
|
-
|
|
568
|
-
Let's measure the time it takes to instantiate an Agent and the memory footprint of an Agent. Here are the numbers (last measured in Oct 2025, on an Apple M4 MacBook Pro):
|
|
569
|
-
|
|
570
|
-
- **Agent instantiation:** ~3μs on average
|
|
571
|
-
- **Memory footprint:** ~6.6Kib on average
|
|
572
|
-
|
|
573
|
-
We'll show below that Agno Agents instantiate **529× faster than Langgraph**, **57× faster than PydanticAI**, and **70× faster than CrewAI**. Agno Agents also use **24× lower memory than Langgraph**, **4× lower than PydanticAI**, and **10× lower than CrewAI**.
|
|
574
|
-
|
|
575
|
-
> [!NOTE]
|
|
576
|
-
> Run time performance is bottlenecked by inference and hard to benchmark accurately, so we focus on minimizing overhead, reducing memory usage, and parallelizing tool calls.
|
|
577
|
-
|
|
578
|
-
### Instantiation Time
|
|
540
|
+
We're obsessive about performance because agent workloads spawn hundreds of instances and run long tasks. Stateless, horizontal scalability isn't optional.
|
|
579
541
|
|
|
580
|
-
|
|
542
|
+
**Benchmarks** (Apple M4 MacBook Pro, Oct 2025):
|
|
581
543
|
|
|
582
|
-
|
|
583
|
-
|
|
544
|
+
| Metric | Agno | LangGraph | PydanticAI | CrewAI |
|
|
545
|
+
|--------|------|-----------|------------|--------|
|
|
546
|
+
| Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
|
|
547
|
+
| Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
|
|
584
548
|
|
|
585
|
-
|
|
586
|
-
# Setup virtual environment
|
|
587
|
-
./scripts/perf_setup.sh
|
|
588
|
-
source .venvs/perfenv/bin/activate
|
|
589
|
-
|
|
590
|
-
# Agno
|
|
591
|
-
python cookbook/evals/performance/instantiate_agent_with_tool.py
|
|
592
|
-
|
|
593
|
-
# LangGraph
|
|
594
|
-
python cookbook/evals/performance/comparison/langgraph_instantiation.py
|
|
595
|
-
# CrewAI
|
|
596
|
-
python cookbook/evals/performance/comparison/crewai_instantiation.py
|
|
597
|
-
# Pydantic AI
|
|
598
|
-
python cookbook/evals/performance/comparison/pydantic_ai_instantiation.py
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
LangGraph is on the right, **let's start it first and give it a head start**. Then CrewAI and Pydantic AI follow, and finally Agno. Agno obviously finishes first, but let's see by how much.
|
|
549
|
+
Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
|
|
602
550
|
|
|
603
551
|
https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
|
|
604
552
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
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.
|
|
608
|
-
|
|
609
|
-
We recommend running the evaluation yourself on your own machine, and digging into the code to see how it works. If we've made a mistake, please let us know.
|
|
610
|
-
|
|
611
|
-
### Results
|
|
612
|
-
|
|
613
|
-
Taking Agno as the baseline, we can see that:
|
|
614
|
-
|
|
615
|
-
| Metric | Agno | Langgraph | PydanticAI | CrewAI |
|
|
616
|
-
| ------------------ | ---- | ----------- | ---------- | ---------- |
|
|
617
|
-
| **Time (seconds)** | 1× | 529× slower | 57× slower | 70× slower |
|
|
618
|
-
| **Memory (MiB)** | 1× | 24× higher | 4× higher | 10× higher |
|
|
553
|
+
## IDE Integration
|
|
619
554
|
|
|
620
|
-
|
|
555
|
+
For AI-assisted development, add our docs to your IDE:
|
|
621
556
|
|
|
622
|
-
|
|
623
|
-
| ------------------ | -------- | --------- | ---------- | -------- |
|
|
624
|
-
| **Time (seconds)** | 0.000003 | 0.001587 | 0.000170 | 0.000210 |
|
|
625
|
-
| **Memory (MiB)** | 0.006642 | 0.161435 | 0.028712 | 0.065652 |
|
|
557
|
+
**Cursor:** Settings → Indexing & Docs → Add `https://docs.agno.com/llms-full.txt`
|
|
626
558
|
|
|
627
|
-
|
|
628
|
-
> Agno agents are designed for performance and while we share benchmarks against other frameworks, we should be mindful that accuracy and reliability are more important than speed.
|
|
559
|
+
Works with VSCode, Windsurf, and other AI-enabled editors too.
|
|
629
560
|
|
|
630
|
-
##
|
|
561
|
+
## Contributing
|
|
631
562
|
|
|
632
|
-
We welcome contributions
|
|
563
|
+
We welcome contributions. See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
|
|
633
564
|
|
|
634
565
|
## Telemetry
|
|
635
566
|
|
|
636
|
-
Agno logs which model
|
|
567
|
+
Agno logs which model providers are used so we can prioritize updates. Disable with `AGNO_TELEMETRY=false`.
|
|
637
568
|
|
|
638
569
|
<p align="left">
|
|
639
570
|
<a href="#top">⬆️ Back to Top</a>
|
agno-2.3.21/README.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
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
|
+
<div align="center">
|
|
12
|
+
<a href="https://docs.agno.com">Documentation</a>
|
|
13
|
+
<span> • </span>
|
|
14
|
+
<a href="https://github.com/agno-agi/agno/tree/main/cookbook">Cookbook</a>
|
|
15
|
+
<span> • </span>
|
|
16
|
+
<a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github">Website</a>
|
|
17
|
+
<br />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
## What is Agno?
|
|
21
|
+
|
|
22
|
+
Agno is a multi-agent framework, runtime, and control plane. Use it to build private and secure AI products that run in your cloud.
|
|
23
|
+
|
|
24
|
+
- **Build** agents, teams, and workflows with memory, knowledge, guardrails, and 100+ toolkits.
|
|
25
|
+
- **Run** in production with a stateless FastAPI runtime. Horizontally scalable.
|
|
26
|
+
- **Manage** with a control plane that connects directly to your runtime — no data leaves your environment.
|
|
27
|
+
|
|
28
|
+
## Why Agno?
|
|
29
|
+
|
|
30
|
+
- **Your cloud, your data:** AgentOS runs entirely in your infrastructure. Zero data leaves your environment.
|
|
31
|
+
- **Production-ready from day one:** Pre-built FastAPI runtime with SSE endpoints, ready to deploy.
|
|
32
|
+
- **Actually fast:** 529× faster than LangGraph, 24× lower memory. Matters at scale.
|
|
33
|
+
|
|
34
|
+
## Getting Started
|
|
35
|
+
|
|
36
|
+
New to Agno? Start with the [getting started guide](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started).
|
|
37
|
+
|
|
38
|
+
Then:
|
|
39
|
+
- Browse the [cookbooks](https://github.com/agno-agi/agno/tree/main/cookbook) for real-world examples
|
|
40
|
+
- Read the [docs](https://docs.agno.com) to learn more.
|
|
41
|
+
|
|
42
|
+
## Resources
|
|
43
|
+
|
|
44
|
+
- Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
|
|
45
|
+
- Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
|
|
46
|
+
- Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
|
|
47
|
+
- Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
|
|
48
|
+
|
|
49
|
+
## Example
|
|
50
|
+
|
|
51
|
+
Here's an example of an Agent that connects to an MCP server, manages conversation state in a database, is served using a FastAPI application that you can chat with using the [AgentOS UI](https://os.agno.com).
|
|
52
|
+
|
|
53
|
+
```python agno_agent.py
|
|
54
|
+
from agno.agent import Agent
|
|
55
|
+
from agno.db.sqlite import SqliteDb
|
|
56
|
+
from agno.models.anthropic import Claude
|
|
57
|
+
from agno.os import AgentOS
|
|
58
|
+
from agno.tools.mcp import MCPTools
|
|
59
|
+
|
|
60
|
+
# ************* Create Agent *************
|
|
61
|
+
agno_agent = Agent(
|
|
62
|
+
name="Agno Agent",
|
|
63
|
+
model=Claude(id="claude-sonnet-4-5"),
|
|
64
|
+
# Add a database to the Agent
|
|
65
|
+
db=SqliteDb(db_file="agno.db"),
|
|
66
|
+
# Add the Agno MCP server to the Agent
|
|
67
|
+
tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
|
|
68
|
+
# Add the previous session history to the context
|
|
69
|
+
add_history_to_context=True,
|
|
70
|
+
markdown=True,
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# ************* Create AgentOS *************
|
|
75
|
+
agent_os = AgentOS(agents=[agno_agent])
|
|
76
|
+
# Get the FastAPI app for the AgentOS
|
|
77
|
+
app = agent_os.get_app()
|
|
78
|
+
|
|
79
|
+
# ************* Run AgentOS *************
|
|
80
|
+
if __name__ == "__main__":
|
|
81
|
+
agent_os.serve(app="agno_agent:app", reload=True)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## AgentOS - Production Runtime for Multi-Agent Systems
|
|
85
|
+
|
|
86
|
+
Building Agents is easy, running them as a secure, scalable service is hard. AgentOS solves this by providing a high performance runtime for serving multi-agent systems in production. Key features include:
|
|
87
|
+
|
|
88
|
+
1. **Pre-built FastAPI app**: AgentOS includes a ready-to-use FastAPI app for running your agents, teams and workflows. This gives you a significant head start when building an AI product.
|
|
89
|
+
|
|
90
|
+
2. **Integrated Control Plane**: The [AgentOS UI](https://os.agno.com) connects directly to your runtime, so you can test, monitor and manage your system in real time with full operational visibility.
|
|
91
|
+
|
|
92
|
+
3. **Private by Design**: AgentOS runs entirely in your cloud, ensuring complete data privacy. No data leaves your environment, making it ideal for security conscious enterprises..
|
|
93
|
+
|
|
94
|
+
When you run the example script shared above, you get a FastAPI app that you can connect to the [AgentOS UI](https://os.agno.com). Here's what it looks like in action:
|
|
95
|
+
|
|
96
|
+
https://github.com/user-attachments/assets/feb23db8-15cc-4e88-be7c-01a21a03ebf6
|
|
97
|
+
|
|
98
|
+
## Private by Design
|
|
99
|
+
|
|
100
|
+
This is the part we care most about.
|
|
101
|
+
|
|
102
|
+
AgentOS runs in **your** cloud. The control plane UI connects directly to your runtime from your browser. Your data never touches our servers. No retention costs, no vendor lock-in, no compliance headaches.
|
|
103
|
+
|
|
104
|
+
This isn't a privacy mode or enterprise add-on. It's how Agno works.
|
|
105
|
+
|
|
106
|
+
## Features
|
|
107
|
+
|
|
108
|
+
**Core**
|
|
109
|
+
- Model agnostic — works with OpenAI, Anthropic, Google, local models, whatever
|
|
110
|
+
- Type-safe I/O with `input_schema` and `output_schema`
|
|
111
|
+
- Async-first, built for long-running tasks
|
|
112
|
+
- Natively multimodal (text, images, audio, video, files)
|
|
113
|
+
|
|
114
|
+
**Memory & Knowledge**
|
|
115
|
+
- Persistent storage for session history and state
|
|
116
|
+
- User memory that persists across sessions
|
|
117
|
+
- Agentic RAG with 20+ vector stores, hybrid search, reranking
|
|
118
|
+
- Culture — shared long-term memory across agents
|
|
119
|
+
|
|
120
|
+
**Execution**
|
|
121
|
+
- Human-in-the-loop (confirmations, approvals, overrides)
|
|
122
|
+
- Guardrails for validation and security
|
|
123
|
+
- Pre/post hooks for the agent lifecycle
|
|
124
|
+
- First-class MCP and A2A support
|
|
125
|
+
- 100+ built-in toolkits
|
|
126
|
+
|
|
127
|
+
**Production**
|
|
128
|
+
- Ready-to-use FastAPI runtime
|
|
129
|
+
- Integrated control plane UI
|
|
130
|
+
- Evals for accuracy, performance, latency
|
|
131
|
+
- Durable execution for resumable workflows
|
|
132
|
+
- RBAC and per-agent permissions
|
|
133
|
+
|
|
134
|
+
## Performance
|
|
135
|
+
|
|
136
|
+
We're obsessive about performance because agent workloads spawn hundreds of instances and run long tasks. Stateless, horizontal scalability isn't optional.
|
|
137
|
+
|
|
138
|
+
**Benchmarks** (Apple M4 MacBook Pro, Oct 2025):
|
|
139
|
+
|
|
140
|
+
| Metric | Agno | LangGraph | PydanticAI | CrewAI |
|
|
141
|
+
|--------|------|-----------|------------|--------|
|
|
142
|
+
| Instantiation | **3μs** | 1,587μs (529× slower) | 170μs (57× slower) | 210μs (70× slower) |
|
|
143
|
+
| Memory | **6.6 KiB** | 161 KiB (24× higher) | 29 KiB (4× higher) | 66 KiB (10× higher) |
|
|
144
|
+
|
|
145
|
+
Run the benchmarks yourself: [`cookbook/evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/evals/performance)
|
|
146
|
+
|
|
147
|
+
https://github.com/user-attachments/assets/54b98576-1859-4880-9f2d-15e1a426719d
|
|
148
|
+
|
|
149
|
+
## IDE Integration
|
|
150
|
+
|
|
151
|
+
For AI-assisted development, add our docs to your IDE:
|
|
152
|
+
|
|
153
|
+
**Cursor:** Settings → Indexing & Docs → Add `https://docs.agno.com/llms-full.txt`
|
|
154
|
+
|
|
155
|
+
Works with VSCode, Windsurf, and other AI-enabled editors too.
|
|
156
|
+
|
|
157
|
+
## Contributing
|
|
158
|
+
|
|
159
|
+
We welcome contributions. See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
|
|
160
|
+
|
|
161
|
+
## Telemetry
|
|
162
|
+
|
|
163
|
+
Agno logs which model providers are used so we can prioritize updates. Disable with `AGNO_TELEMETRY=false`.
|
|
164
|
+
|
|
165
|
+
<p align="left">
|
|
166
|
+
<a href="#top">⬆️ Back to Top</a>
|
|
167
|
+
</p>
|