agno 1.8.2__py3-none-any.whl → 2.0.0__py3-none-any.whl
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/agent/__init__.py +19 -27
- agno/agent/agent.py +3143 -4170
- agno/api/agent.py +11 -67
- agno/api/api.py +5 -46
- agno/api/evals.py +8 -19
- agno/api/os.py +17 -0
- agno/api/routes.py +6 -41
- agno/api/schemas/__init__.py +9 -0
- agno/api/schemas/agent.py +5 -21
- agno/api/schemas/evals.py +7 -16
- agno/api/schemas/os.py +14 -0
- agno/api/schemas/team.py +5 -21
- agno/api/schemas/utils.py +21 -0
- agno/api/schemas/workflows.py +11 -7
- agno/api/settings.py +53 -0
- agno/api/team.py +11 -66
- agno/api/workflow.py +28 -0
- agno/cloud/aws/base.py +214 -0
- agno/cloud/aws/s3/__init__.py +2 -0
- agno/cloud/aws/s3/api_client.py +43 -0
- agno/cloud/aws/s3/bucket.py +195 -0
- agno/cloud/aws/s3/object.py +57 -0
- agno/db/__init__.py +24 -0
- agno/db/base.py +245 -0
- agno/db/dynamo/__init__.py +3 -0
- agno/db/dynamo/dynamo.py +1743 -0
- agno/db/dynamo/schemas.py +278 -0
- agno/db/dynamo/utils.py +684 -0
- agno/db/firestore/__init__.py +3 -0
- agno/db/firestore/firestore.py +1432 -0
- agno/db/firestore/schemas.py +130 -0
- agno/db/firestore/utils.py +278 -0
- agno/db/gcs_json/__init__.py +3 -0
- agno/db/gcs_json/gcs_json_db.py +1001 -0
- agno/db/gcs_json/utils.py +194 -0
- agno/db/in_memory/__init__.py +3 -0
- agno/db/in_memory/in_memory_db.py +882 -0
- agno/db/in_memory/utils.py +172 -0
- agno/db/json/__init__.py +3 -0
- agno/db/json/json_db.py +1045 -0
- agno/db/json/utils.py +196 -0
- agno/db/migrations/v1_to_v2.py +162 -0
- agno/db/mongo/__init__.py +3 -0
- agno/db/mongo/mongo.py +1416 -0
- agno/db/mongo/schemas.py +77 -0
- agno/db/mongo/utils.py +204 -0
- agno/db/mysql/__init__.py +3 -0
- agno/db/mysql/mysql.py +1719 -0
- agno/db/mysql/schemas.py +124 -0
- agno/db/mysql/utils.py +297 -0
- agno/db/postgres/__init__.py +3 -0
- agno/db/postgres/postgres.py +1710 -0
- agno/db/postgres/schemas.py +124 -0
- agno/db/postgres/utils.py +280 -0
- agno/db/redis/__init__.py +3 -0
- agno/db/redis/redis.py +1367 -0
- agno/db/redis/schemas.py +109 -0
- agno/db/redis/utils.py +288 -0
- agno/db/schemas/__init__.py +3 -0
- agno/db/schemas/evals.py +33 -0
- agno/db/schemas/knowledge.py +40 -0
- agno/db/schemas/memory.py +46 -0
- agno/db/singlestore/__init__.py +3 -0
- agno/db/singlestore/schemas.py +116 -0
- agno/db/singlestore/singlestore.py +1712 -0
- agno/db/singlestore/utils.py +326 -0
- agno/db/sqlite/__init__.py +3 -0
- agno/db/sqlite/schemas.py +119 -0
- agno/db/sqlite/sqlite.py +1676 -0
- agno/db/sqlite/utils.py +268 -0
- agno/db/utils.py +88 -0
- agno/eval/__init__.py +14 -0
- agno/eval/accuracy.py +154 -48
- agno/eval/performance.py +88 -23
- agno/eval/reliability.py +73 -20
- agno/eval/utils.py +23 -13
- agno/integrations/discord/__init__.py +3 -0
- agno/{app → integrations}/discord/client.py +10 -10
- agno/knowledge/__init__.py +2 -2
- agno/{document → knowledge}/chunking/agentic.py +2 -2
- agno/{document → knowledge}/chunking/document.py +2 -2
- agno/{document → knowledge}/chunking/fixed.py +3 -3
- agno/{document → knowledge}/chunking/markdown.py +2 -2
- agno/{document → knowledge}/chunking/recursive.py +2 -2
- agno/{document → knowledge}/chunking/row.py +2 -2
- agno/knowledge/chunking/semantic.py +59 -0
- agno/knowledge/chunking/strategy.py +121 -0
- agno/knowledge/content.py +74 -0
- agno/knowledge/document/__init__.py +5 -0
- agno/{document → knowledge/document}/base.py +12 -2
- agno/knowledge/embedder/__init__.py +5 -0
- agno/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
- agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
- agno/{embedder → knowledge/embedder}/base.py +6 -0
- agno/{embedder → knowledge/embedder}/cohere.py +72 -1
- agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
- agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
- agno/{embedder → knowledge/embedder}/google.py +74 -1
- agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
- agno/{embedder → knowledge/embedder}/jina.py +48 -2
- agno/knowledge/embedder/langdb.py +22 -0
- agno/knowledge/embedder/mistral.py +139 -0
- agno/{embedder → knowledge/embedder}/nebius.py +1 -1
- agno/{embedder → knowledge/embedder}/ollama.py +54 -3
- agno/knowledge/embedder/openai.py +223 -0
- agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
- agno/{embedder → knowledge/embedder}/together.py +1 -1
- agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
- agno/knowledge/knowledge.py +1551 -0
- agno/knowledge/reader/__init__.py +7 -0
- agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
- agno/knowledge/reader/base.py +88 -0
- agno/{document → knowledge}/reader/csv_reader.py +47 -65
- agno/knowledge/reader/docx_reader.py +83 -0
- agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
- agno/{document → knowledge}/reader/json_reader.py +30 -9
- agno/{document → knowledge}/reader/markdown_reader.py +58 -9
- agno/{document → knowledge}/reader/pdf_reader.py +71 -126
- agno/knowledge/reader/reader_factory.py +268 -0
- agno/knowledge/reader/s3_reader.py +101 -0
- agno/{document → knowledge}/reader/text_reader.py +31 -10
- agno/knowledge/reader/url_reader.py +128 -0
- agno/knowledge/reader/web_search_reader.py +366 -0
- agno/{document → knowledge}/reader/website_reader.py +37 -10
- agno/knowledge/reader/wikipedia_reader.py +59 -0
- agno/knowledge/reader/youtube_reader.py +78 -0
- agno/knowledge/remote_content/remote_content.py +88 -0
- agno/{reranker → knowledge/reranker}/base.py +1 -1
- agno/{reranker → knowledge/reranker}/cohere.py +2 -2
- agno/{reranker → knowledge/reranker}/infinity.py +2 -2
- agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
- agno/knowledge/types.py +30 -0
- agno/knowledge/utils.py +169 -0
- agno/media.py +269 -268
- agno/memory/__init__.py +2 -10
- agno/memory/manager.py +1003 -148
- agno/models/aimlapi/__init__.py +2 -2
- agno/models/aimlapi/aimlapi.py +6 -6
- agno/models/anthropic/claude.py +128 -72
- agno/models/aws/bedrock.py +107 -175
- agno/models/aws/claude.py +64 -18
- agno/models/azure/ai_foundry.py +73 -23
- agno/models/base.py +346 -290
- agno/models/cerebras/cerebras.py +84 -27
- agno/models/cohere/chat.py +106 -98
- agno/models/google/gemini.py +105 -46
- agno/models/groq/groq.py +97 -35
- agno/models/huggingface/huggingface.py +92 -27
- agno/models/ibm/watsonx.py +72 -13
- agno/models/litellm/chat.py +85 -13
- agno/models/message.py +46 -151
- agno/models/meta/llama.py +85 -49
- agno/models/metrics.py +120 -0
- agno/models/mistral/mistral.py +90 -21
- agno/models/ollama/__init__.py +0 -2
- agno/models/ollama/chat.py +85 -47
- agno/models/openai/chat.py +154 -37
- agno/models/openai/responses.py +178 -105
- agno/models/perplexity/perplexity.py +26 -2
- agno/models/portkey/portkey.py +0 -7
- agno/models/response.py +15 -9
- agno/models/utils.py +20 -0
- agno/models/vercel/__init__.py +2 -2
- agno/models/vercel/v0.py +1 -1
- agno/models/vllm/__init__.py +2 -2
- agno/models/vllm/vllm.py +3 -3
- agno/models/xai/xai.py +10 -10
- agno/os/__init__.py +3 -0
- agno/os/app.py +497 -0
- agno/os/auth.py +47 -0
- agno/os/config.py +103 -0
- agno/os/interfaces/agui/__init__.py +3 -0
- agno/os/interfaces/agui/agui.py +31 -0
- agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
- agno/{app → os/interfaces}/agui/utils.py +65 -28
- agno/os/interfaces/base.py +21 -0
- agno/os/interfaces/slack/__init__.py +3 -0
- agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
- agno/os/interfaces/slack/slack.py +32 -0
- agno/os/interfaces/whatsapp/__init__.py +3 -0
- agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
- agno/os/interfaces/whatsapp/whatsapp.py +29 -0
- agno/os/mcp.py +235 -0
- agno/os/router.py +1400 -0
- agno/os/routers/__init__.py +3 -0
- agno/os/routers/evals/__init__.py +3 -0
- agno/os/routers/evals/evals.py +393 -0
- agno/os/routers/evals/schemas.py +142 -0
- agno/os/routers/evals/utils.py +161 -0
- agno/os/routers/knowledge/__init__.py +3 -0
- agno/os/routers/knowledge/knowledge.py +850 -0
- agno/os/routers/knowledge/schemas.py +118 -0
- agno/os/routers/memory/__init__.py +3 -0
- agno/os/routers/memory/memory.py +410 -0
- agno/os/routers/memory/schemas.py +58 -0
- agno/os/routers/metrics/__init__.py +3 -0
- agno/os/routers/metrics/metrics.py +178 -0
- agno/os/routers/metrics/schemas.py +47 -0
- agno/os/routers/session/__init__.py +3 -0
- agno/os/routers/session/session.py +536 -0
- agno/os/schema.py +945 -0
- agno/{app/playground → os}/settings.py +7 -15
- agno/os/utils.py +270 -0
- agno/reasoning/azure_ai_foundry.py +4 -4
- agno/reasoning/deepseek.py +4 -4
- agno/reasoning/default.py +6 -11
- agno/reasoning/groq.py +4 -4
- agno/reasoning/helpers.py +4 -6
- agno/reasoning/ollama.py +4 -4
- agno/reasoning/openai.py +4 -4
- agno/run/agent.py +633 -0
- agno/run/base.py +53 -77
- agno/run/cancel.py +81 -0
- agno/run/team.py +243 -96
- agno/run/workflow.py +550 -12
- agno/session/__init__.py +10 -0
- agno/session/agent.py +244 -0
- agno/session/summary.py +225 -0
- agno/session/team.py +262 -0
- agno/{storage/session/v2 → session}/workflow.py +47 -24
- agno/team/__init__.py +15 -16
- agno/team/team.py +3260 -4824
- agno/tools/agentql.py +14 -5
- agno/tools/airflow.py +9 -4
- agno/tools/api.py +7 -3
- agno/tools/apify.py +2 -46
- agno/tools/arxiv.py +8 -3
- agno/tools/aws_lambda.py +7 -5
- agno/tools/aws_ses.py +7 -1
- agno/tools/baidusearch.py +4 -1
- agno/tools/bitbucket.py +4 -4
- agno/tools/brandfetch.py +14 -11
- agno/tools/bravesearch.py +4 -1
- agno/tools/brightdata.py +43 -23
- agno/tools/browserbase.py +13 -4
- agno/tools/calcom.py +12 -10
- agno/tools/calculator.py +10 -27
- agno/tools/cartesia.py +20 -17
- agno/tools/{clickup_tool.py → clickup.py} +12 -25
- agno/tools/confluence.py +8 -8
- agno/tools/crawl4ai.py +7 -1
- agno/tools/csv_toolkit.py +9 -8
- agno/tools/dalle.py +22 -12
- agno/tools/daytona.py +13 -16
- agno/tools/decorator.py +6 -3
- agno/tools/desi_vocal.py +17 -8
- agno/tools/discord.py +11 -8
- agno/tools/docker.py +30 -42
- agno/tools/duckdb.py +34 -53
- agno/tools/duckduckgo.py +8 -7
- agno/tools/e2b.py +62 -62
- agno/tools/eleven_labs.py +36 -29
- agno/tools/email.py +4 -1
- agno/tools/evm.py +7 -1
- agno/tools/exa.py +19 -14
- agno/tools/fal.py +30 -30
- agno/tools/file.py +9 -8
- agno/tools/financial_datasets.py +25 -44
- agno/tools/firecrawl.py +17 -18
- agno/tools/function.py +127 -18
- agno/tools/giphy.py +23 -11
- agno/tools/github.py +48 -126
- agno/tools/gmail.py +45 -61
- agno/tools/google_bigquery.py +7 -6
- agno/tools/google_maps.py +11 -26
- agno/tools/googlesearch.py +7 -2
- agno/tools/googlesheets.py +21 -17
- agno/tools/hackernews.py +9 -5
- agno/tools/jina.py +5 -4
- agno/tools/jira.py +18 -9
- agno/tools/knowledge.py +31 -32
- agno/tools/linear.py +18 -33
- agno/tools/linkup.py +5 -1
- agno/tools/local_file_system.py +8 -5
- agno/tools/lumalab.py +32 -20
- agno/tools/mcp.py +1 -2
- agno/tools/mem0.py +18 -12
- agno/tools/memori.py +14 -10
- agno/tools/mlx_transcribe.py +3 -2
- agno/tools/models/azure_openai.py +33 -15
- agno/tools/models/gemini.py +59 -32
- agno/tools/models/groq.py +30 -23
- agno/tools/models/nebius.py +28 -12
- agno/tools/models_labs.py +40 -16
- agno/tools/moviepy_video.py +7 -6
- agno/tools/neo4j.py +10 -8
- agno/tools/newspaper.py +7 -2
- agno/tools/newspaper4k.py +8 -3
- agno/tools/openai.py +58 -32
- agno/tools/openbb.py +12 -11
- agno/tools/opencv.py +63 -47
- agno/tools/openweather.py +14 -12
- agno/tools/pandas.py +11 -3
- agno/tools/postgres.py +4 -12
- agno/tools/pubmed.py +4 -1
- agno/tools/python.py +9 -22
- agno/tools/reasoning.py +35 -27
- agno/tools/reddit.py +11 -26
- agno/tools/replicate.py +55 -42
- agno/tools/resend.py +4 -1
- agno/tools/scrapegraph.py +15 -14
- agno/tools/searxng.py +10 -23
- agno/tools/serpapi.py +6 -3
- agno/tools/serper.py +13 -4
- agno/tools/shell.py +9 -2
- agno/tools/slack.py +12 -11
- agno/tools/sleep.py +3 -2
- agno/tools/spider.py +24 -4
- agno/tools/sql.py +7 -6
- agno/tools/tavily.py +6 -4
- agno/tools/telegram.py +12 -4
- agno/tools/todoist.py +11 -31
- agno/tools/toolkit.py +1 -1
- agno/tools/trafilatura.py +22 -6
- agno/tools/trello.py +9 -22
- agno/tools/twilio.py +10 -3
- agno/tools/user_control_flow.py +6 -1
- agno/tools/valyu.py +34 -5
- agno/tools/visualization.py +19 -28
- agno/tools/webbrowser.py +4 -3
- agno/tools/webex.py +11 -7
- agno/tools/website.py +15 -46
- agno/tools/webtools.py +12 -4
- agno/tools/whatsapp.py +5 -9
- agno/tools/wikipedia.py +20 -13
- agno/tools/x.py +14 -13
- agno/tools/yfinance.py +13 -40
- agno/tools/youtube.py +26 -20
- agno/tools/zendesk.py +7 -2
- agno/tools/zep.py +10 -7
- agno/tools/zoom.py +10 -9
- agno/utils/common.py +1 -19
- agno/utils/events.py +100 -123
- agno/utils/gemini.py +1 -1
- agno/utils/knowledge.py +29 -0
- agno/utils/log.py +54 -4
- agno/utils/mcp.py +68 -10
- agno/utils/media.py +39 -0
- agno/utils/message.py +12 -1
- agno/utils/models/aws_claude.py +1 -1
- agno/utils/models/claude.py +6 -12
- agno/utils/models/cohere.py +1 -1
- agno/utils/models/mistral.py +8 -7
- agno/utils/models/schema_utils.py +3 -3
- agno/utils/models/watsonx.py +1 -1
- agno/utils/openai.py +1 -1
- agno/utils/pprint.py +33 -32
- agno/utils/print_response/agent.py +779 -0
- agno/utils/print_response/team.py +1669 -0
- agno/utils/print_response/workflow.py +1451 -0
- agno/utils/prompts.py +14 -14
- agno/utils/reasoning.py +87 -0
- agno/utils/response.py +42 -42
- agno/utils/streamlit.py +481 -0
- agno/utils/string.py +8 -22
- agno/utils/team.py +50 -0
- agno/utils/timer.py +2 -2
- agno/vectordb/base.py +33 -21
- agno/vectordb/cassandra/cassandra.py +287 -23
- agno/vectordb/chroma/chromadb.py +482 -59
- agno/vectordb/clickhouse/clickhousedb.py +270 -63
- agno/vectordb/couchbase/couchbase.py +309 -29
- agno/vectordb/lancedb/lance_db.py +360 -21
- agno/vectordb/langchaindb/__init__.py +5 -0
- agno/vectordb/langchaindb/langchaindb.py +145 -0
- agno/vectordb/lightrag/__init__.py +5 -0
- agno/vectordb/lightrag/lightrag.py +374 -0
- agno/vectordb/llamaindex/llamaindexdb.py +127 -0
- agno/vectordb/milvus/milvus.py +242 -32
- agno/vectordb/mongodb/mongodb.py +200 -24
- agno/vectordb/pgvector/pgvector.py +319 -37
- agno/vectordb/pineconedb/pineconedb.py +221 -27
- agno/vectordb/qdrant/qdrant.py +334 -14
- agno/vectordb/singlestore/singlestore.py +286 -29
- agno/vectordb/surrealdb/surrealdb.py +187 -7
- agno/vectordb/upstashdb/upstashdb.py +342 -26
- agno/vectordb/weaviate/weaviate.py +227 -165
- agno/workflow/__init__.py +17 -13
- agno/workflow/{v2/condition.py → condition.py} +135 -32
- agno/workflow/{v2/loop.py → loop.py} +115 -28
- agno/workflow/{v2/parallel.py → parallel.py} +138 -108
- agno/workflow/{v2/router.py → router.py} +133 -32
- agno/workflow/{v2/step.py → step.py} +207 -49
- agno/workflow/{v2/steps.py → steps.py} +147 -66
- agno/workflow/types.py +482 -0
- agno/workflow/workflow.py +2410 -696
- agno-2.0.0.dist-info/METADATA +494 -0
- agno-2.0.0.dist-info/RECORD +515 -0
- agno-2.0.0.dist-info/licenses/LICENSE +201 -0
- agno/agent/metrics.py +0 -110
- agno/api/app.py +0 -35
- agno/api/playground.py +0 -92
- agno/api/schemas/app.py +0 -12
- agno/api/schemas/playground.py +0 -22
- agno/api/schemas/user.py +0 -35
- agno/api/schemas/workspace.py +0 -46
- agno/api/user.py +0 -160
- agno/api/workflows.py +0 -33
- agno/api/workspace.py +0 -175
- agno/app/agui/__init__.py +0 -3
- agno/app/agui/app.py +0 -17
- agno/app/agui/sync_router.py +0 -120
- agno/app/base.py +0 -186
- agno/app/discord/__init__.py +0 -3
- agno/app/fastapi/__init__.py +0 -3
- agno/app/fastapi/app.py +0 -107
- agno/app/fastapi/async_router.py +0 -457
- agno/app/fastapi/sync_router.py +0 -448
- agno/app/playground/app.py +0 -228
- agno/app/playground/async_router.py +0 -1053
- agno/app/playground/deploy.py +0 -249
- agno/app/playground/operator.py +0 -183
- agno/app/playground/schemas.py +0 -223
- agno/app/playground/serve.py +0 -55
- agno/app/playground/sync_router.py +0 -1045
- agno/app/playground/utils.py +0 -46
- agno/app/settings.py +0 -15
- agno/app/slack/__init__.py +0 -3
- agno/app/slack/app.py +0 -19
- agno/app/slack/sync_router.py +0 -92
- agno/app/utils.py +0 -54
- agno/app/whatsapp/__init__.py +0 -3
- agno/app/whatsapp/app.py +0 -15
- agno/app/whatsapp/sync_router.py +0 -197
- agno/cli/auth_server.py +0 -249
- agno/cli/config.py +0 -274
- agno/cli/console.py +0 -88
- agno/cli/credentials.py +0 -23
- agno/cli/entrypoint.py +0 -571
- agno/cli/operator.py +0 -357
- agno/cli/settings.py +0 -96
- agno/cli/ws/ws_cli.py +0 -817
- agno/constants.py +0 -13
- agno/document/__init__.py +0 -5
- agno/document/chunking/semantic.py +0 -45
- agno/document/chunking/strategy.py +0 -31
- agno/document/reader/__init__.py +0 -5
- agno/document/reader/base.py +0 -47
- agno/document/reader/docx_reader.py +0 -60
- agno/document/reader/gcs/pdf_reader.py +0 -44
- agno/document/reader/s3/pdf_reader.py +0 -59
- agno/document/reader/s3/text_reader.py +0 -63
- agno/document/reader/url_reader.py +0 -59
- agno/document/reader/youtube_reader.py +0 -58
- agno/embedder/__init__.py +0 -5
- agno/embedder/langdb.py +0 -80
- agno/embedder/mistral.py +0 -82
- agno/embedder/openai.py +0 -78
- agno/file/__init__.py +0 -5
- agno/file/file.py +0 -16
- agno/file/local/csv.py +0 -32
- agno/file/local/txt.py +0 -19
- agno/infra/app.py +0 -240
- agno/infra/base.py +0 -144
- agno/infra/context.py +0 -20
- agno/infra/db_app.py +0 -52
- agno/infra/resource.py +0 -205
- agno/infra/resources.py +0 -55
- agno/knowledge/agent.py +0 -702
- agno/knowledge/arxiv.py +0 -33
- agno/knowledge/combined.py +0 -36
- agno/knowledge/csv.py +0 -144
- agno/knowledge/csv_url.py +0 -124
- agno/knowledge/document.py +0 -223
- agno/knowledge/docx.py +0 -137
- agno/knowledge/firecrawl.py +0 -34
- agno/knowledge/gcs/__init__.py +0 -0
- agno/knowledge/gcs/base.py +0 -39
- agno/knowledge/gcs/pdf.py +0 -125
- agno/knowledge/json.py +0 -137
- agno/knowledge/langchain.py +0 -71
- agno/knowledge/light_rag.py +0 -273
- agno/knowledge/llamaindex.py +0 -66
- agno/knowledge/markdown.py +0 -154
- agno/knowledge/pdf.py +0 -164
- agno/knowledge/pdf_bytes.py +0 -42
- agno/knowledge/pdf_url.py +0 -148
- agno/knowledge/s3/__init__.py +0 -0
- agno/knowledge/s3/base.py +0 -64
- agno/knowledge/s3/pdf.py +0 -33
- agno/knowledge/s3/text.py +0 -34
- agno/knowledge/text.py +0 -141
- agno/knowledge/url.py +0 -46
- agno/knowledge/website.py +0 -179
- agno/knowledge/wikipedia.py +0 -32
- agno/knowledge/youtube.py +0 -35
- agno/memory/agent.py +0 -423
- agno/memory/classifier.py +0 -104
- agno/memory/db/__init__.py +0 -5
- agno/memory/db/base.py +0 -42
- agno/memory/db/mongodb.py +0 -189
- agno/memory/db/postgres.py +0 -203
- agno/memory/db/sqlite.py +0 -193
- agno/memory/memory.py +0 -22
- agno/memory/row.py +0 -36
- agno/memory/summarizer.py +0 -201
- agno/memory/summary.py +0 -19
- agno/memory/team.py +0 -415
- agno/memory/v2/__init__.py +0 -2
- agno/memory/v2/db/__init__.py +0 -1
- agno/memory/v2/db/base.py +0 -42
- agno/memory/v2/db/firestore.py +0 -339
- agno/memory/v2/db/mongodb.py +0 -196
- agno/memory/v2/db/postgres.py +0 -214
- agno/memory/v2/db/redis.py +0 -187
- agno/memory/v2/db/schema.py +0 -54
- agno/memory/v2/db/sqlite.py +0 -209
- agno/memory/v2/manager.py +0 -437
- agno/memory/v2/memory.py +0 -1097
- agno/memory/v2/schema.py +0 -55
- agno/memory/v2/summarizer.py +0 -215
- agno/memory/workflow.py +0 -38
- agno/models/ollama/tools.py +0 -430
- agno/models/qwen/__init__.py +0 -5
- agno/playground/__init__.py +0 -10
- agno/playground/deploy.py +0 -3
- agno/playground/playground.py +0 -3
- agno/playground/serve.py +0 -3
- agno/playground/settings.py +0 -3
- agno/reranker/__init__.py +0 -0
- agno/run/response.py +0 -467
- agno/run/v2/__init__.py +0 -0
- agno/run/v2/workflow.py +0 -567
- agno/storage/__init__.py +0 -0
- agno/storage/agent/__init__.py +0 -0
- agno/storage/agent/dynamodb.py +0 -1
- agno/storage/agent/json.py +0 -1
- agno/storage/agent/mongodb.py +0 -1
- agno/storage/agent/postgres.py +0 -1
- agno/storage/agent/singlestore.py +0 -1
- agno/storage/agent/sqlite.py +0 -1
- agno/storage/agent/yaml.py +0 -1
- agno/storage/base.py +0 -60
- agno/storage/dynamodb.py +0 -673
- agno/storage/firestore.py +0 -297
- agno/storage/gcs_json.py +0 -261
- agno/storage/in_memory.py +0 -234
- agno/storage/json.py +0 -237
- agno/storage/mongodb.py +0 -328
- agno/storage/mysql.py +0 -685
- agno/storage/postgres.py +0 -682
- agno/storage/redis.py +0 -336
- agno/storage/session/__init__.py +0 -16
- agno/storage/session/agent.py +0 -64
- agno/storage/session/team.py +0 -63
- agno/storage/session/v2/__init__.py +0 -5
- agno/storage/session/workflow.py +0 -61
- agno/storage/singlestore.py +0 -606
- agno/storage/sqlite.py +0 -646
- agno/storage/workflow/__init__.py +0 -0
- agno/storage/workflow/mongodb.py +0 -1
- agno/storage/workflow/postgres.py +0 -1
- agno/storage/workflow/sqlite.py +0 -1
- agno/storage/yaml.py +0 -241
- agno/tools/thinking.py +0 -73
- agno/utils/defaults.py +0 -57
- agno/utils/filesystem.py +0 -39
- agno/utils/git.py +0 -52
- agno/utils/json_io.py +0 -30
- agno/utils/load_env.py +0 -19
- agno/utils/py_io.py +0 -19
- agno/utils/pyproject.py +0 -18
- agno/utils/resource_filter.py +0 -31
- agno/workflow/v2/__init__.py +0 -21
- agno/workflow/v2/types.py +0 -357
- agno/workflow/v2/workflow.py +0 -3313
- agno/workspace/__init__.py +0 -0
- agno/workspace/config.py +0 -325
- agno/workspace/enums.py +0 -6
- agno/workspace/helpers.py +0 -52
- agno/workspace/operator.py +0 -757
- agno/workspace/settings.py +0 -158
- agno-1.8.2.dist-info/METADATA +0 -982
- agno-1.8.2.dist-info/RECORD +0 -566
- agno-1.8.2.dist-info/entry_points.txt +0 -3
- agno-1.8.2.dist-info/licenses/LICENSE +0 -375
- /agno/{app → db/migrations}/__init__.py +0 -0
- /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
- /agno/{cli → integrations}/__init__.py +0 -0
- /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
- /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
- /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
- /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
- /agno/{app → os/interfaces}/slack/security.py +0 -0
- /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
- /agno/{file/local → utils/print_response}/__init__.py +0 -0
- /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
- {agno-1.8.2.dist-info → agno-2.0.0.dist-info}/WHEEL +0 -0
- {agno-1.8.2.dist-info → agno-2.0.0.dist-info}/top_level.txt +0 -0
agno/utils/events.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
2
|
|
|
3
|
-
from agno.media import
|
|
3
|
+
from agno.media import Audio, Image
|
|
4
4
|
from agno.models.message import Citations
|
|
5
5
|
from agno.models.response import ToolExecution
|
|
6
6
|
from agno.reasoning.step import ReasoningStep
|
|
7
|
-
from agno.run.
|
|
7
|
+
from agno.run.agent import (
|
|
8
8
|
MemoryUpdateCompletedEvent,
|
|
9
9
|
MemoryUpdateStartedEvent,
|
|
10
10
|
OutputModelResponseCompletedEvent,
|
|
@@ -14,14 +14,14 @@ from agno.run.response import (
|
|
|
14
14
|
ReasoningCompletedEvent,
|
|
15
15
|
ReasoningStartedEvent,
|
|
16
16
|
ReasoningStepEvent,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
RunCancelledEvent,
|
|
18
|
+
RunCompletedEvent,
|
|
19
|
+
RunContentEvent,
|
|
20
|
+
RunContinuedEvent,
|
|
21
|
+
RunErrorEvent,
|
|
22
|
+
RunOutput,
|
|
23
|
+
RunPausedEvent,
|
|
24
|
+
RunStartedEvent,
|
|
25
25
|
ToolCallCompletedEvent,
|
|
26
26
|
ToolCallStartedEvent,
|
|
27
27
|
)
|
|
@@ -34,219 +34,208 @@ from agno.run.team import ParserModelResponseStartedEvent as TeamParserModelResp
|
|
|
34
34
|
from agno.run.team import ReasoningCompletedEvent as TeamReasoningCompletedEvent
|
|
35
35
|
from agno.run.team import ReasoningStartedEvent as TeamReasoningStartedEvent
|
|
36
36
|
from agno.run.team import ReasoningStepEvent as TeamReasoningStepEvent
|
|
37
|
-
from agno.run.team import
|
|
38
|
-
from agno.run.team import
|
|
39
|
-
from agno.run.team import
|
|
40
|
-
from agno.run.team import
|
|
41
|
-
from agno.run.team import
|
|
42
|
-
from agno.run.team import
|
|
37
|
+
from agno.run.team import RunCancelledEvent as TeamRunCancelledEvent
|
|
38
|
+
from agno.run.team import RunCompletedEvent as TeamRunCompletedEvent
|
|
39
|
+
from agno.run.team import RunContentEvent as TeamRunContentEvent
|
|
40
|
+
from agno.run.team import RunErrorEvent as TeamRunErrorEvent
|
|
41
|
+
from agno.run.team import RunStartedEvent as TeamRunStartedEvent
|
|
42
|
+
from agno.run.team import TeamRunOutput
|
|
43
43
|
from agno.run.team import ToolCallCompletedEvent as TeamToolCallCompletedEvent
|
|
44
44
|
from agno.run.team import ToolCallStartedEvent as TeamToolCallStartedEvent
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
def
|
|
48
|
-
return
|
|
47
|
+
def create_team_run_started_event(from_run_response: TeamRunOutput) -> TeamRunStartedEvent:
|
|
48
|
+
return TeamRunStartedEvent(
|
|
49
49
|
session_id=from_run_response.session_id,
|
|
50
50
|
team_id=from_run_response.team_id, # type: ignore
|
|
51
51
|
team_name=from_run_response.team_name, # type: ignore
|
|
52
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
53
52
|
run_id=from_run_response.run_id,
|
|
54
53
|
model=from_run_response.model, # type: ignore
|
|
55
54
|
model_provider=from_run_response.model_provider, # type: ignore
|
|
56
55
|
)
|
|
57
56
|
|
|
58
57
|
|
|
59
|
-
def
|
|
60
|
-
return
|
|
58
|
+
def create_run_started_event(from_run_response: RunOutput) -> RunStartedEvent:
|
|
59
|
+
return RunStartedEvent(
|
|
61
60
|
session_id=from_run_response.session_id,
|
|
62
61
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
63
62
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
64
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
65
63
|
run_id=from_run_response.run_id,
|
|
66
64
|
model=from_run_response.model, # type: ignore
|
|
67
65
|
model_provider=from_run_response.model_provider, # type: ignore
|
|
68
66
|
)
|
|
69
67
|
|
|
70
68
|
|
|
71
|
-
def
|
|
72
|
-
return
|
|
69
|
+
def create_team_run_completed_event(from_run_response: TeamRunOutput) -> TeamRunCompletedEvent:
|
|
70
|
+
return TeamRunCompletedEvent(
|
|
73
71
|
session_id=from_run_response.session_id,
|
|
74
72
|
team_id=from_run_response.team_id, # type: ignore
|
|
75
73
|
team_name=from_run_response.team_name, # type: ignore
|
|
76
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
77
74
|
run_id=from_run_response.run_id,
|
|
78
75
|
content=from_run_response.content, # type: ignore
|
|
79
76
|
content_type=from_run_response.content_type, # type: ignore
|
|
80
77
|
reasoning_content=from_run_response.reasoning_content, # type: ignore
|
|
81
|
-
thinking=from_run_response.thinking, # type: ignore
|
|
82
78
|
citations=from_run_response.citations, # type: ignore
|
|
83
79
|
images=from_run_response.images, # type: ignore
|
|
84
80
|
videos=from_run_response.videos, # type: ignore
|
|
85
81
|
audio=from_run_response.audio, # type: ignore
|
|
86
82
|
response_audio=from_run_response.response_audio, # type: ignore
|
|
87
|
-
|
|
83
|
+
references=from_run_response.references, # type: ignore
|
|
84
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
85
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
86
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
88
87
|
member_responses=from_run_response.member_responses, # type: ignore
|
|
88
|
+
metadata=from_run_response.metadata, # type: ignore
|
|
89
|
+
metrics=from_run_response.metrics, # type: ignore
|
|
89
90
|
)
|
|
90
91
|
|
|
91
92
|
|
|
92
|
-
def
|
|
93
|
-
return
|
|
93
|
+
def create_run_completed_event(from_run_response: RunOutput) -> RunCompletedEvent:
|
|
94
|
+
return RunCompletedEvent(
|
|
94
95
|
session_id=from_run_response.session_id,
|
|
95
96
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
96
97
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
97
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
98
98
|
run_id=from_run_response.run_id,
|
|
99
99
|
content=from_run_response.content, # type: ignore
|
|
100
100
|
content_type=from_run_response.content_type, # type: ignore
|
|
101
101
|
reasoning_content=from_run_response.reasoning_content, # type: ignore
|
|
102
|
-
thinking=from_run_response.thinking, # type: ignore
|
|
103
102
|
citations=from_run_response.citations, # type: ignore
|
|
104
103
|
images=from_run_response.images, # type: ignore
|
|
105
104
|
videos=from_run_response.videos, # type: ignore
|
|
106
105
|
audio=from_run_response.audio, # type: ignore
|
|
107
106
|
response_audio=from_run_response.response_audio, # type: ignore
|
|
108
|
-
|
|
107
|
+
references=from_run_response.references, # type: ignore
|
|
108
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
109
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
110
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
111
|
+
metadata=from_run_response.metadata, # type: ignore
|
|
112
|
+
metrics=from_run_response.metrics, # type: ignore
|
|
109
113
|
)
|
|
110
114
|
|
|
111
115
|
|
|
112
|
-
def
|
|
113
|
-
from_run_response:
|
|
114
|
-
) ->
|
|
115
|
-
return
|
|
116
|
+
def create_run_paused_event(
|
|
117
|
+
from_run_response: RunOutput, tools: Optional[List[ToolExecution]] = None
|
|
118
|
+
) -> RunPausedEvent:
|
|
119
|
+
return RunPausedEvent(
|
|
116
120
|
session_id=from_run_response.session_id,
|
|
117
121
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
118
122
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
119
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
120
123
|
run_id=from_run_response.run_id,
|
|
121
124
|
tools=tools,
|
|
122
125
|
content=from_run_response.content,
|
|
123
126
|
)
|
|
124
127
|
|
|
125
128
|
|
|
126
|
-
def
|
|
127
|
-
return
|
|
129
|
+
def create_run_continued_event(from_run_response: RunOutput) -> RunContinuedEvent:
|
|
130
|
+
return RunContinuedEvent(
|
|
128
131
|
session_id=from_run_response.session_id,
|
|
129
132
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
130
133
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
131
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
132
134
|
run_id=from_run_response.run_id,
|
|
133
135
|
)
|
|
134
136
|
|
|
135
137
|
|
|
136
|
-
def
|
|
137
|
-
return
|
|
138
|
+
def create_team_run_error_event(from_run_response: TeamRunOutput, error: str) -> TeamRunErrorEvent:
|
|
139
|
+
return TeamRunErrorEvent(
|
|
138
140
|
session_id=from_run_response.session_id,
|
|
139
141
|
team_id=from_run_response.team_id, # type: ignore
|
|
140
142
|
team_name=from_run_response.team_name, # type: ignore
|
|
141
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
142
143
|
run_id=from_run_response.run_id,
|
|
143
144
|
content=error,
|
|
144
145
|
)
|
|
145
146
|
|
|
146
147
|
|
|
147
|
-
def
|
|
148
|
-
return
|
|
148
|
+
def create_run_error_event(from_run_response: RunOutput, error: str) -> RunErrorEvent:
|
|
149
|
+
return RunErrorEvent(
|
|
149
150
|
session_id=from_run_response.session_id,
|
|
150
151
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
151
152
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
152
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
153
153
|
run_id=from_run_response.run_id,
|
|
154
154
|
content=error,
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
def
|
|
159
|
-
|
|
160
|
-
) -> TeamRunResponseCancelledEvent:
|
|
161
|
-
return TeamRunResponseCancelledEvent(
|
|
158
|
+
def create_team_run_cancelled_event(from_run_response: TeamRunOutput, reason: str) -> TeamRunCancelledEvent:
|
|
159
|
+
return TeamRunCancelledEvent(
|
|
162
160
|
session_id=from_run_response.session_id,
|
|
163
161
|
team_id=from_run_response.team_id, # type: ignore
|
|
164
162
|
team_name=from_run_response.team_name, # type: ignore
|
|
165
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
166
163
|
run_id=from_run_response.run_id,
|
|
167
164
|
reason=reason,
|
|
168
165
|
)
|
|
169
166
|
|
|
170
167
|
|
|
171
|
-
def
|
|
172
|
-
return
|
|
168
|
+
def create_run_cancelled_event(from_run_response: RunOutput, reason: str) -> RunCancelledEvent:
|
|
169
|
+
return RunCancelledEvent(
|
|
173
170
|
session_id=from_run_response.session_id,
|
|
174
171
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
175
172
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
176
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
177
173
|
run_id=from_run_response.run_id,
|
|
178
174
|
reason=reason,
|
|
179
175
|
)
|
|
180
176
|
|
|
181
177
|
|
|
182
|
-
def create_memory_update_started_event(from_run_response:
|
|
178
|
+
def create_memory_update_started_event(from_run_response: RunOutput) -> MemoryUpdateStartedEvent:
|
|
183
179
|
return MemoryUpdateStartedEvent(
|
|
184
180
|
session_id=from_run_response.session_id,
|
|
185
181
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
186
182
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
187
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
188
183
|
run_id=from_run_response.run_id,
|
|
189
184
|
)
|
|
190
185
|
|
|
191
186
|
|
|
192
|
-
def create_team_memory_update_started_event(from_run_response:
|
|
187
|
+
def create_team_memory_update_started_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateStartedEvent:
|
|
193
188
|
return TeamMemoryUpdateStartedEvent(
|
|
194
189
|
session_id=from_run_response.session_id,
|
|
195
190
|
team_id=from_run_response.team_id, # type: ignore
|
|
196
191
|
team_name=from_run_response.team_name, # type: ignore
|
|
197
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
198
192
|
run_id=from_run_response.run_id,
|
|
199
193
|
)
|
|
200
194
|
|
|
201
195
|
|
|
202
|
-
def create_memory_update_completed_event(from_run_response:
|
|
196
|
+
def create_memory_update_completed_event(from_run_response: RunOutput) -> MemoryUpdateCompletedEvent:
|
|
203
197
|
return MemoryUpdateCompletedEvent(
|
|
204
198
|
session_id=from_run_response.session_id,
|
|
205
199
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
206
200
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
207
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
208
201
|
run_id=from_run_response.run_id,
|
|
209
202
|
)
|
|
210
203
|
|
|
211
204
|
|
|
212
|
-
def create_team_memory_update_completed_event(from_run_response:
|
|
205
|
+
def create_team_memory_update_completed_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateCompletedEvent:
|
|
213
206
|
return TeamMemoryUpdateCompletedEvent(
|
|
214
207
|
session_id=from_run_response.session_id,
|
|
215
208
|
team_id=from_run_response.team_id, # type: ignore
|
|
216
209
|
team_name=from_run_response.team_name, # type: ignore
|
|
217
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
218
210
|
run_id=from_run_response.run_id,
|
|
219
211
|
)
|
|
220
212
|
|
|
221
213
|
|
|
222
|
-
def create_reasoning_started_event(from_run_response:
|
|
214
|
+
def create_reasoning_started_event(from_run_response: RunOutput) -> ReasoningStartedEvent:
|
|
223
215
|
return ReasoningStartedEvent(
|
|
224
216
|
session_id=from_run_response.session_id,
|
|
225
217
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
226
218
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
227
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
228
219
|
run_id=from_run_response.run_id,
|
|
229
220
|
)
|
|
230
221
|
|
|
231
222
|
|
|
232
|
-
def create_team_reasoning_started_event(from_run_response:
|
|
223
|
+
def create_team_reasoning_started_event(from_run_response: TeamRunOutput) -> TeamReasoningStartedEvent:
|
|
233
224
|
return TeamReasoningStartedEvent(
|
|
234
225
|
session_id=from_run_response.session_id,
|
|
235
226
|
team_id=from_run_response.team_id, # type: ignore
|
|
236
227
|
team_name=from_run_response.team_name, # type: ignore
|
|
237
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
238
228
|
run_id=from_run_response.run_id,
|
|
239
229
|
)
|
|
240
230
|
|
|
241
231
|
|
|
242
232
|
def create_reasoning_step_event(
|
|
243
|
-
from_run_response:
|
|
233
|
+
from_run_response: RunOutput, reasoning_step: ReasoningStep, reasoning_content: str
|
|
244
234
|
) -> ReasoningStepEvent:
|
|
245
235
|
return ReasoningStepEvent(
|
|
246
236
|
session_id=from_run_response.session_id,
|
|
247
237
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
248
238
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
249
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
250
239
|
run_id=from_run_response.run_id,
|
|
251
240
|
content=reasoning_step,
|
|
252
241
|
content_type=reasoning_step.__class__.__name__,
|
|
@@ -255,13 +244,12 @@ def create_reasoning_step_event(
|
|
|
255
244
|
|
|
256
245
|
|
|
257
246
|
def create_team_reasoning_step_event(
|
|
258
|
-
from_run_response:
|
|
247
|
+
from_run_response: TeamRunOutput, reasoning_step: ReasoningStep, reasoning_content: str
|
|
259
248
|
) -> TeamReasoningStepEvent:
|
|
260
249
|
return TeamReasoningStepEvent(
|
|
261
250
|
session_id=from_run_response.session_id,
|
|
262
251
|
team_id=from_run_response.team_id, # type: ignore
|
|
263
252
|
team_name=from_run_response.team_name, # type: ignore
|
|
264
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
265
253
|
run_id=from_run_response.run_id,
|
|
266
254
|
content=reasoning_step,
|
|
267
255
|
content_type=reasoning_step.__class__.__name__,
|
|
@@ -270,13 +258,12 @@ def create_team_reasoning_step_event(
|
|
|
270
258
|
|
|
271
259
|
|
|
272
260
|
def create_reasoning_completed_event(
|
|
273
|
-
from_run_response:
|
|
261
|
+
from_run_response: RunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
|
|
274
262
|
) -> ReasoningCompletedEvent:
|
|
275
263
|
return ReasoningCompletedEvent(
|
|
276
264
|
session_id=from_run_response.session_id,
|
|
277
265
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
278
266
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
279
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
280
267
|
run_id=from_run_response.run_id,
|
|
281
268
|
content=content,
|
|
282
269
|
content_type=content_type or "str",
|
|
@@ -284,51 +271,47 @@ def create_reasoning_completed_event(
|
|
|
284
271
|
|
|
285
272
|
|
|
286
273
|
def create_team_reasoning_completed_event(
|
|
287
|
-
from_run_response:
|
|
274
|
+
from_run_response: TeamRunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
|
|
288
275
|
) -> TeamReasoningCompletedEvent:
|
|
289
276
|
return TeamReasoningCompletedEvent(
|
|
290
277
|
session_id=from_run_response.session_id,
|
|
291
278
|
team_id=from_run_response.team_id, # type: ignore
|
|
292
279
|
team_name=from_run_response.team_name, # type: ignore
|
|
293
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
294
280
|
run_id=from_run_response.run_id,
|
|
295
281
|
content=content,
|
|
296
282
|
content_type=content_type or "str",
|
|
297
283
|
)
|
|
298
284
|
|
|
299
285
|
|
|
300
|
-
def create_tool_call_started_event(from_run_response:
|
|
286
|
+
def create_tool_call_started_event(from_run_response: RunOutput, tool: ToolExecution) -> ToolCallStartedEvent:
|
|
301
287
|
return ToolCallStartedEvent(
|
|
302
288
|
session_id=from_run_response.session_id,
|
|
303
289
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
304
290
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
305
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
306
291
|
run_id=from_run_response.run_id,
|
|
307
292
|
tool=tool,
|
|
308
293
|
)
|
|
309
294
|
|
|
310
295
|
|
|
311
296
|
def create_team_tool_call_started_event(
|
|
312
|
-
from_run_response:
|
|
297
|
+
from_run_response: TeamRunOutput, tool: ToolExecution
|
|
313
298
|
) -> TeamToolCallStartedEvent:
|
|
314
299
|
return TeamToolCallStartedEvent(
|
|
315
300
|
session_id=from_run_response.session_id,
|
|
316
301
|
team_id=from_run_response.team_id, # type: ignore
|
|
317
302
|
team_name=from_run_response.team_name, # type: ignore
|
|
318
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
319
303
|
run_id=from_run_response.run_id,
|
|
320
304
|
tool=tool,
|
|
321
305
|
)
|
|
322
306
|
|
|
323
307
|
|
|
324
308
|
def create_tool_call_completed_event(
|
|
325
|
-
from_run_response:
|
|
309
|
+
from_run_response: RunOutput, tool: ToolExecution, content: Optional[Any] = None
|
|
326
310
|
) -> ToolCallCompletedEvent:
|
|
327
311
|
return ToolCallCompletedEvent(
|
|
328
312
|
session_id=from_run_response.session_id,
|
|
329
313
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
330
314
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
331
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
332
315
|
run_id=from_run_response.run_id,
|
|
333
316
|
tool=tool,
|
|
334
317
|
content=content,
|
|
@@ -339,13 +322,12 @@ def create_tool_call_completed_event(
|
|
|
339
322
|
|
|
340
323
|
|
|
341
324
|
def create_team_tool_call_completed_event(
|
|
342
|
-
from_run_response:
|
|
325
|
+
from_run_response: TeamRunOutput, tool: ToolExecution, content: Optional[Any] = None
|
|
343
326
|
) -> TeamToolCallCompletedEvent:
|
|
344
327
|
return TeamToolCallCompletedEvent(
|
|
345
328
|
session_id=from_run_response.session_id,
|
|
346
329
|
team_id=from_run_response.team_id, # type: ignore
|
|
347
330
|
team_name=from_run_response.team_name, # type: ignore
|
|
348
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
349
331
|
run_id=from_run_response.run_id,
|
|
350
332
|
tool=tool,
|
|
351
333
|
content=content,
|
|
@@ -355,150 +337,145 @@ def create_team_tool_call_completed_event(
|
|
|
355
337
|
)
|
|
356
338
|
|
|
357
339
|
|
|
358
|
-
def
|
|
359
|
-
from_run_response:
|
|
340
|
+
def create_run_output_content_event(
|
|
341
|
+
from_run_response: RunOutput,
|
|
360
342
|
content: Optional[Any] = None,
|
|
361
343
|
content_type: Optional[str] = None,
|
|
362
|
-
thinking: Optional[str] = None,
|
|
363
344
|
reasoning_content: Optional[str] = None,
|
|
364
|
-
|
|
345
|
+
redacted_reasoning_content: Optional[str] = None,
|
|
365
346
|
citations: Optional[Citations] = None,
|
|
366
|
-
response_audio: Optional[
|
|
367
|
-
image: Optional[
|
|
368
|
-
) ->
|
|
369
|
-
thinking_combined = (
|
|
347
|
+
response_audio: Optional[Audio] = None,
|
|
348
|
+
image: Optional[Image] = None,
|
|
349
|
+
) -> RunContentEvent:
|
|
350
|
+
thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
|
|
370
351
|
|
|
371
|
-
return
|
|
352
|
+
return RunContentEvent(
|
|
372
353
|
session_id=from_run_response.session_id,
|
|
373
354
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
374
355
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
375
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
376
356
|
run_id=from_run_response.run_id,
|
|
377
357
|
content=content,
|
|
378
358
|
content_type=content_type or "str",
|
|
379
|
-
|
|
380
|
-
reasoning_content=reasoning_content,
|
|
359
|
+
reasoning_content=thinking_combined,
|
|
381
360
|
citations=citations,
|
|
382
361
|
response_audio=response_audio,
|
|
383
362
|
image=image,
|
|
384
|
-
|
|
363
|
+
references=from_run_response.references,
|
|
364
|
+
additional_input=from_run_response.additional_input,
|
|
365
|
+
reasoning_steps=from_run_response.reasoning_steps,
|
|
366
|
+
reasoning_messages=from_run_response.reasoning_messages,
|
|
385
367
|
)
|
|
386
368
|
|
|
387
369
|
|
|
388
|
-
def
|
|
389
|
-
from_run_response:
|
|
370
|
+
def create_team_run_output_content_event(
|
|
371
|
+
from_run_response: TeamRunOutput,
|
|
390
372
|
content: Optional[Any] = None,
|
|
391
373
|
content_type: Optional[str] = None,
|
|
392
|
-
|
|
393
|
-
|
|
374
|
+
reasoning_content: Optional[str] = None,
|
|
375
|
+
redacted_reasoning_content: Optional[str] = None,
|
|
394
376
|
citations: Optional[Citations] = None,
|
|
395
|
-
response_audio: Optional[
|
|
396
|
-
image: Optional[
|
|
397
|
-
) ->
|
|
398
|
-
thinking_combined = (
|
|
399
|
-
|
|
377
|
+
response_audio: Optional[Audio] = None,
|
|
378
|
+
image: Optional[Image] = None,
|
|
379
|
+
) -> TeamRunContentEvent:
|
|
380
|
+
thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
|
|
381
|
+
|
|
382
|
+
return TeamRunContentEvent(
|
|
400
383
|
session_id=from_run_response.session_id,
|
|
401
384
|
team_id=from_run_response.team_id, # type: ignore
|
|
402
385
|
team_name=from_run_response.team_name, # type: ignore
|
|
403
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
404
386
|
run_id=from_run_response.run_id,
|
|
405
387
|
content=content,
|
|
406
388
|
content_type=content_type or "str",
|
|
407
|
-
|
|
389
|
+
reasoning_content=thinking_combined,
|
|
408
390
|
citations=citations,
|
|
409
391
|
response_audio=response_audio,
|
|
410
392
|
image=image,
|
|
411
|
-
|
|
393
|
+
references=from_run_response.references, # type: ignore
|
|
394
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
395
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
396
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
412
397
|
)
|
|
413
398
|
|
|
414
399
|
|
|
415
400
|
def create_parser_model_response_started_event(
|
|
416
|
-
from_run_response:
|
|
401
|
+
from_run_response: RunOutput,
|
|
417
402
|
) -> ParserModelResponseStartedEvent:
|
|
418
403
|
return ParserModelResponseStartedEvent(
|
|
419
404
|
session_id=from_run_response.session_id,
|
|
420
405
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
421
406
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
422
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
423
407
|
run_id=from_run_response.run_id,
|
|
424
408
|
)
|
|
425
409
|
|
|
426
410
|
|
|
427
411
|
def create_parser_model_response_completed_event(
|
|
428
|
-
from_run_response:
|
|
412
|
+
from_run_response: RunOutput,
|
|
429
413
|
) -> ParserModelResponseCompletedEvent:
|
|
430
414
|
return ParserModelResponseCompletedEvent(
|
|
431
415
|
session_id=from_run_response.session_id,
|
|
432
416
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
433
417
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
434
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
435
418
|
run_id=from_run_response.run_id,
|
|
436
419
|
)
|
|
437
420
|
|
|
438
421
|
|
|
439
422
|
def create_team_parser_model_response_started_event(
|
|
440
|
-
from_run_response:
|
|
423
|
+
from_run_response: TeamRunOutput,
|
|
441
424
|
) -> TeamParserModelResponseStartedEvent:
|
|
442
425
|
return TeamParserModelResponseStartedEvent(
|
|
443
426
|
session_id=from_run_response.session_id,
|
|
444
427
|
team_id=from_run_response.team_id, # type: ignore
|
|
445
428
|
team_name=from_run_response.team_name, # type: ignore
|
|
446
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
447
429
|
run_id=from_run_response.run_id,
|
|
448
430
|
)
|
|
449
431
|
|
|
450
432
|
|
|
451
433
|
def create_team_parser_model_response_completed_event(
|
|
452
|
-
from_run_response:
|
|
434
|
+
from_run_response: TeamRunOutput,
|
|
453
435
|
) -> TeamParserModelResponseCompletedEvent:
|
|
454
436
|
return TeamParserModelResponseCompletedEvent(
|
|
455
437
|
session_id=from_run_response.session_id,
|
|
456
438
|
team_id=from_run_response.team_id, # type: ignore
|
|
457
439
|
team_name=from_run_response.team_name, # type: ignore
|
|
458
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
459
440
|
run_id=from_run_response.run_id,
|
|
460
441
|
)
|
|
461
442
|
|
|
462
443
|
|
|
463
|
-
def create_output_model_response_started_event(from_run_response:
|
|
444
|
+
def create_output_model_response_started_event(from_run_response: RunOutput) -> OutputModelResponseStartedEvent:
|
|
464
445
|
return OutputModelResponseStartedEvent(
|
|
465
446
|
session_id=from_run_response.session_id,
|
|
466
447
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
467
448
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
468
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
469
449
|
run_id=from_run_response.run_id,
|
|
470
450
|
)
|
|
471
451
|
|
|
472
452
|
|
|
473
|
-
def create_output_model_response_completed_event(from_run_response:
|
|
453
|
+
def create_output_model_response_completed_event(from_run_response: RunOutput) -> OutputModelResponseCompletedEvent:
|
|
474
454
|
return OutputModelResponseCompletedEvent(
|
|
475
455
|
session_id=from_run_response.session_id,
|
|
476
456
|
agent_id=from_run_response.agent_id, # type: ignore
|
|
477
457
|
agent_name=from_run_response.agent_name, # type: ignore
|
|
478
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
479
458
|
run_id=from_run_response.run_id,
|
|
480
459
|
)
|
|
481
460
|
|
|
482
461
|
|
|
483
462
|
def create_team_output_model_response_started_event(
|
|
484
|
-
from_run_response:
|
|
463
|
+
from_run_response: TeamRunOutput,
|
|
485
464
|
) -> TeamOutputModelResponseStartedEvent:
|
|
486
465
|
return TeamOutputModelResponseStartedEvent(
|
|
487
466
|
session_id=from_run_response.session_id,
|
|
488
467
|
team_id=from_run_response.team_id, # type: ignore
|
|
489
468
|
team_name=from_run_response.team_name, # type: ignore
|
|
490
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
491
469
|
run_id=from_run_response.run_id,
|
|
492
470
|
)
|
|
493
471
|
|
|
494
472
|
|
|
495
473
|
def create_team_output_model_response_completed_event(
|
|
496
|
-
from_run_response:
|
|
474
|
+
from_run_response: TeamRunOutput,
|
|
497
475
|
) -> TeamOutputModelResponseCompletedEvent:
|
|
498
476
|
return TeamOutputModelResponseCompletedEvent(
|
|
499
477
|
session_id=from_run_response.session_id,
|
|
500
478
|
team_id=from_run_response.team_id, # type: ignore
|
|
501
479
|
team_name=from_run_response.team_name, # type: ignore
|
|
502
|
-
team_session_id=from_run_response.team_session_id, # type: ignore
|
|
503
480
|
run_id=from_run_response.run_id,
|
|
504
481
|
)
|
agno/utils/gemini.py
CHANGED
|
@@ -19,7 +19,7 @@ def format_image_for_message(image: Image) -> Optional[Dict[str, Any]]:
|
|
|
19
19
|
# Case 1: Image is a URL
|
|
20
20
|
# Download the image from the URL and add it as base64 encoded data
|
|
21
21
|
if image.url is not None:
|
|
22
|
-
content_bytes = image.
|
|
22
|
+
content_bytes = image.get_content_bytes() # type: ignore
|
|
23
23
|
if content_bytes is not None:
|
|
24
24
|
try:
|
|
25
25
|
import base64
|
agno/utils/knowledge.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
|
+
|
|
3
|
+
from agno.utils.log import log_info
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def get_agentic_or_user_search_filters(
|
|
7
|
+
filters: Optional[Dict[str, Any]], effective_filters: Optional[Dict[str, Any]]
|
|
8
|
+
) -> Dict[str, Any]:
|
|
9
|
+
"""Helper function to determine the final filters to use for the search.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
filters: Filters passed by the agent.
|
|
13
|
+
effective_filters: Filters passed by user.
|
|
14
|
+
|
|
15
|
+
Returns:
|
|
16
|
+
Dict[str, Any]: The final filters to use for the search.
|
|
17
|
+
"""
|
|
18
|
+
search_filters = {}
|
|
19
|
+
|
|
20
|
+
# If agentic filters exist and manual filters (passed by user) do not, use agentic filters
|
|
21
|
+
if filters and not effective_filters:
|
|
22
|
+
search_filters = filters
|
|
23
|
+
|
|
24
|
+
# If both agentic filters exist and manual filters (passed by user) exist, use manual filters (give priority to user and override)
|
|
25
|
+
if filters and effective_filters:
|
|
26
|
+
search_filters = effective_filters
|
|
27
|
+
|
|
28
|
+
log_info(f"Filters used by Agent: {search_filters}")
|
|
29
|
+
return search_filters
|